diff options
author | Andy Zhou <azhou@nicira.com> | 2015-02-26 15:52:34 -0800 |
---|---|---|
committer | Joe Stringer <joestringer@nicira.com> | 2015-10-13 15:34:16 -0700 |
commit | 27130224cd5c3e5d49771d0284edc4042d2cf520 (patch) | |
tree | aa8b587a0106168c41f7c427c1879bcd5012c6c1 /lib/dpif.h | |
parent | d787ad39b8eb8fb9136837e1c65d0a18a1056eda (diff) | |
download | openvswitch-27130224cd5c3e5d49771d0284edc4042d2cf520.tar.gz |
dpif-netlink: Allow MRU packet attribute.
User space now may receive re-assembled IP fragments. The user space
netlink handler can now accept packets with the new OVS_PACKET_ATTR_MRU
attribute. This allows the kernel to assemble fragmented packets for the
duration of OpenFlow processing, then re-fragment at output time. Most
notably this occurs for packets that are sent through the connection
tracker.
Note that the MRU attribute is not exported at the OpenFlow layer. As
such, if packets are reassembled by conntrack and subsequently sent to
the controller, then OVS has no way to re-serialize the packets to their
original size.
Signed-off-by: Andy Zhou <azhou@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/dpif.h')
-rw-r--r-- | lib/dpif.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/dpif.h b/lib/dpif.h index 1b8a7b975..50174ee95 100644 --- a/lib/dpif.h +++ b/lib/dpif.h @@ -697,6 +697,8 @@ struct dpif_execute { size_t actions_len; /* Length of 'actions' in bytes. */ bool needs_help; bool probe; /* Suppress error messages. */ + unsigned int mtu; /* Maximum transmission unit to fragment. + 0 if not a fragmented packet */ /* Input, but possibly modified as a side effect of execution. */ struct dp_packet *packet; /* Packet to execute. */ @@ -780,6 +782,7 @@ struct dpif_upcall { struct nlattr *key; /* Flow key. */ size_t key_len; /* Length of 'key' in bytes. */ ovs_u128 ufid; /* Unique flow identifier for 'key'. */ + struct nlattr *mru; /* Maximum receive unit. */ /* DPIF_UC_ACTION only. */ struct nlattr *userdata; /* Argument to OVS_ACTION_ATTR_USERSPACE. */ |