We can use rxhash to classify the traffic into flows. As rxhash maybe
supplied by NIC or RPS, it is cheaper.
Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Acked-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
        FLOW_KEY_SKUID,
        FLOW_KEY_SKGID,
        FLOW_KEY_VLAN_TAG,
+       FLOW_KEY_RXHASH,
        __FLOW_KEY_MAX,
 };
 
 
        return tag & VLAN_VID_MASK;
 }
 
+static u32 flow_get_rxhash(struct sk_buff *skb)
+{
+       return skb_get_rxhash(skb);
+}
+
 static u32 flow_key_get(struct sk_buff *skb, int key)
 {
        switch (key) {
                return flow_get_skgid(skb);
        case FLOW_KEY_VLAN_TAG:
                return flow_get_vlan_tag(skb);
+       case FLOW_KEY_RXHASH:
+               return flow_get_rxhash(skb);
        default:
                WARN_ON(1);
                return 0;