Re: [PATCH v4 net-next 09/11] net: Add IPv6 flow label to flow_keys
From: Tom Herbert <hidden>
Date: 2015-05-22 15:14:21
On Fri, May 22, 2015 at 1:14 AM, Jiri Pirko [off-list ref] wrote:
Fri, May 22, 2015 at 02:11:44AM CEST, tom@herbertland.com wrote:quoted
In flow_dissector set the flow label in flow_keys for IPv6. This also removes the shortcircuiting of flow dissection when a non-zero label is present, the flow label can be considered to provide additional entropy for a hash. Signed-off-by: Tom Herbert <redacted> --- include/net/flow_dissector.h | 4 +++- net/core/flow_dissector.c | 37 +++++++++++++------------------------ 2 files changed, 16 insertions(+), 25 deletions(-)diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index 08480fb..effe607 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h@@ -28,7 +28,8 @@ struct flow_dissector_key_basic {}; struct flow_dissector_key_tags { - u32 vlan_id:12; + u32 vlan_id:12, + flow_label:20; }; /**@@ -111,6 +112,7 @@ enum flow_dissector_key_id { FLOW_DISSECTOR_KEY_ETH_ADDRS, /* struct flow_dissector_key_eth_addrs */ FLOW_DISSECTOR_KEY_TIPC_ADDRS, /* struct flow_dissector_key_tipc_addrs */ FLOW_DISSECTOR_KEY_VLANID, /* struct flow_dissector_key_flow_tags */ + FLOW_DISSECTOR_KEY_FLOW_LABEL, /* struct flow_dissector_key_flow_label */I think it makes sense to pair FLOW_DISSECTOR_KEY_* with struct flow_dissector_key_* How about to have FLOW_DISSECTOR_KEY_TAGS istead of VLANID and FLOW_LABEL?
I thought about that, but it doesn't really save anything to be less explicit as we still need a conditional at each occurrence. If someone is only looking for IPv6 flow label and nothing else they are able to do that.