summaryrefslogtreecommitdiff
path: root/lib/dpif.h
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2015-02-26 15:52:34 -0800
committerJoe Stringer <joestringer@nicira.com>2015-10-13 15:34:16 -0700
commit27130224cd5c3e5d49771d0284edc4042d2cf520 (patch)
treeaa8b587a0106168c41f7c427c1879bcd5012c6c1 /lib/dpif.h
parentd787ad39b8eb8fb9136837e1c65d0a18a1056eda (diff)
downloadopenvswitch-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.h3
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. */