aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/openvswitch.h
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2013-08-07 23:01:00 -0400
committerJesse Gross <jesse@nicira.com>2013-08-23 19:43:07 -0400
commit03f0d916aa0317592dda11bd17c7357858719b6c (patch)
tree436f94d9c4846cadfa73ee0822f44a6383f3a2f3 /include/uapi/linux/openvswitch.h
parent3fa34de67861abfc4846ccec886ca549d46ae56c (diff)
openvswitch: Mega flow implementation
Add wildcarded flow support in kernel datapath. Wildcarded flow can improve OVS flow set up performance by avoid sending matching new flows to the user space program. The exact performance boost will largely dependent on wildcarded flow hit rate. In case all new flows hits wildcard flows, the flow set up rate is within 5% of that of linux bridge module. Pravin has made significant contributions to this patch. Including API clean ups and bug fixes. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: Andy Zhou <azhou@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
Diffstat (limited to 'include/uapi/linux/openvswitch.h')
-rw-r--r--include/uapi/linux/openvswitch.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 52490b0e62b5..de1fa5d3780f 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -1,6 +1,6 @@
1 1
2/* 2/*
3 * Copyright (c) 2007-2011 Nicira Networks. 3 * Copyright (c) 2007-2013 Nicira, Inc.
4 * 4 *
5 * This program is free software; you can redistribute it and/or 5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public 6 * modify it under the terms of version 2 of the GNU General Public
@@ -379,6 +379,12 @@ struct ovs_key_nd {
379 * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the 379 * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the
380 * last-used time, accumulated TCP flags, and statistics for this flow. 380 * last-used time, accumulated TCP flags, and statistics for this flow.
381 * Otherwise ignored in requests. Never present in notifications. 381 * Otherwise ignored in requests. Never present in notifications.
382 * @OVS_FLOW_ATTR_MASK: Nested %OVS_KEY_ATTR_* attributes specifying the
383 * mask bits for wildcarded flow match. Mask bit value '1' specifies exact
384 * match with corresponding flow key bit, while mask bit value '0' specifies
385 * a wildcarded match. Omitting attribute is treated as wildcarding all
386 * corresponding fields. Optional for all requests. If not present,
387 * all flow key bits are exact match bits.
382 * 388 *
383 * These attributes follow the &struct ovs_header within the Generic Netlink 389 * These attributes follow the &struct ovs_header within the Generic Netlink
384 * payload for %OVS_FLOW_* commands. 390 * payload for %OVS_FLOW_* commands.
@@ -391,6 +397,7 @@ enum ovs_flow_attr {
391 OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */ 397 OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
392 OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */ 398 OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
393 OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */ 399 OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */
400 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
394 __OVS_FLOW_ATTR_MAX 401 __OVS_FLOW_ATTR_MAX
395}; 402};
396 403