Jesse Gross says: ==================== Open vSwitch A set of updates for net-next/3.13. Major changes are: * Restructure flow handling code to be more logically organized and easier to read. * Rehashing of the flow table is moved from a workqueue to flow installation time. Before, heavy load could block the workqueue for excessive periods of time. * Additional debugging information is provided to help diagnose megaflows. * It's now possible to match on TCP flags. ====================
Showing the changes to include/uapi/linux (1 of 13 files). Show all
Unified · Split
| @@ -63,15 +63,18 @@ enum ovs_datapath_cmd { · 62 unmodified lines | ||
| 63 | 63 | * not be sent. |
| 64 | 64 | * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the |
| 65 | 65 | * datapath. Always present in notifications. |
| 66 | + * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the | |
| 67 | + * datapath. Always present in notifications. | |
| 66 | 68 | * |
| 67 | 69 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 68 | 70 | * payload for %OVS_DP_* commands. |
| 69 | 71 | */ |
| 70 | 72 | enum ovs_datapath_attr { |
| 71 | 73 | OVS_DP_ATTR_UNSPEC, |
| 72 | − OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */ | |
| 73 | − OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ | |
| 74 | − OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ | |
| 74 | + OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */ | |
| 75 | + OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ | |
| 76 | + OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ | |
| 77 | + OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ | |
| 75 | 78 | __OVS_DP_ATTR_MAX |
| 76 | 79 | }; |
| 77 | 80 | |
| @@ -84,6 +87,14 @@ struct ovs_dp_stats { · 6 unmodified lines | ||
| 84 | 87 | __u64 n_flows; /* Number of flows present */ |
| 85 | 88 | }; |
| 86 | 89 | |
| 90 | +struct ovs_dp_megaflow_stats { | |
| 91 | + __u64 n_mask_hit; /* Number of masks used for flow lookups. */ | |
| 92 | + __u32 n_masks; /* Number of masks for the datapath. */ | |
| 93 | + __u32 pad0; /* Pad for future expension. */ | |
| 94 | + __u64 pad1; /* Pad for future expension. */ | |
| 95 | + __u64 pad2; /* Pad for future expension. */ | |
| 96 | +}; | |
| 97 | + | |
| 87 | 98 | struct ovs_vport_stats { |
| 88 | 99 | __u64 rx_packets; /* total packets received */ |
| 89 | 100 | __u64 tx_packets; /* total packets transmitted */ |
| @@ -260,6 +271,7 @@ enum ovs_key_attr { · 170 unmodified lines | ||
| 260 | 271 | OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */ |
| 261 | 272 | OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */ |
| 262 | 273 | OVS_KEY_ATTR_SCTP, /* struct ovs_key_sctp */ |
| 274 | + OVS_KEY_ATTR_TCP_FLAGS, /* be16 TCP flags. */ | |
| 263 | 275 | |
| 264 | 276 | #ifdef __KERNEL__ |
| 265 | 277 | OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */ |