Lines Matching refs:keys
1757 static inline void __flow_hash_consistentify(struct flow_keys *keys) in __flow_hash_consistentify() argument
1761 switch (keys->control.addr_type) { in __flow_hash_consistentify()
1763 if ((__force u32)keys->addrs.v4addrs.dst < in __flow_hash_consistentify()
1764 (__force u32)keys->addrs.v4addrs.src) in __flow_hash_consistentify()
1765 swap(keys->addrs.v4addrs.src, keys->addrs.v4addrs.dst); in __flow_hash_consistentify()
1767 if ((__force u16)keys->ports.dst < in __flow_hash_consistentify()
1768 (__force u16)keys->ports.src) { in __flow_hash_consistentify()
1769 swap(keys->ports.src, keys->ports.dst); in __flow_hash_consistentify()
1773 addr_diff = memcmp(&keys->addrs.v6addrs.dst, in __flow_hash_consistentify()
1774 &keys->addrs.v6addrs.src, in __flow_hash_consistentify()
1775 sizeof(keys->addrs.v6addrs.dst)); in __flow_hash_consistentify()
1778 swap(keys->addrs.v6addrs.src.s6_addr32[i], in __flow_hash_consistentify()
1779 keys->addrs.v6addrs.dst.s6_addr32[i]); in __flow_hash_consistentify()
1781 if ((__force u16)keys->ports.dst < in __flow_hash_consistentify()
1782 (__force u16)keys->ports.src) { in __flow_hash_consistentify()
1783 swap(keys->ports.src, keys->ports.dst); in __flow_hash_consistentify()
1789 static inline u32 __flow_hash_from_keys(struct flow_keys *keys, in __flow_hash_from_keys() argument
1794 __flow_hash_consistentify(keys); in __flow_hash_from_keys()
1796 hash = siphash(flow_keys_hash_start(keys), in __flow_hash_from_keys()
1797 flow_keys_hash_length(keys), keyval); in __flow_hash_from_keys()
1804 u32 flow_hash_from_keys(struct flow_keys *keys) in flow_hash_from_keys() argument
1807 return __flow_hash_from_keys(keys, &hashrnd); in flow_hash_from_keys()
1811 u32 flow_hash_from_keys_seed(struct flow_keys *keys, in flow_hash_from_keys_seed() argument
1814 return __flow_hash_from_keys(keys, keyval); in flow_hash_from_keys_seed()
1819 struct flow_keys *keys, in ___skb_get_hash() argument
1822 skb_flow_dissect_flow_keys(skb, keys, in ___skb_get_hash()
1825 return __flow_hash_from_keys(keys, keyval); in ___skb_get_hash()
1859 struct flow_keys keys; in __skb_get_hash_symmetric_net() local
1863 memset(&keys, 0, sizeof(keys)); in __skb_get_hash_symmetric_net()
1865 &keys, NULL, 0, 0, 0, 0); in __skb_get_hash_symmetric_net()
1867 return __flow_hash_from_keys(&keys, &hashrnd); in __skb_get_hash_symmetric_net()
1883 struct flow_keys keys; in __skb_get_hash_net() local
1886 memset(&keys, 0, sizeof(keys)); in __skb_get_hash_net()
1889 &keys, NULL, 0, 0, 0, in __skb_get_hash_net()
1894 hash = __flow_hash_from_keys(&keys, &hashrnd); in __skb_get_hash_net()
1896 __skb_set_sw_hash(skb, hash, flow_keys_have_l4(&keys)); in __skb_get_hash_net()
1903 struct flow_keys keys; in skb_get_hash_perturb() local
1905 return ___skb_get_hash(skb, &keys, perturb); in skb_get_hash_perturb()
1910 const struct flow_keys_basic *keys, int hlen) in __skb_get_poff() argument
1912 u32 poff = keys->control.thoff; in __skb_get_poff()
1915 if ((keys->control.flags & FLOW_DIS_IS_FRAGMENT) && in __skb_get_poff()
1916 !(keys->control.flags & FLOW_DIS_FIRST_FRAG)) in __skb_get_poff()
1919 switch (keys->basic.ip_proto) { in __skb_get_poff()
1971 struct flow_keys_basic keys; in skb_get_poff() local
1973 if (!skb_flow_dissect_flow_keys_basic(NULL, skb, &keys, in skb_get_poff()
1977 return __skb_get_poff(skb, skb->data, &keys, skb_headlen(skb)); in skb_get_poff()
1980 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys) in __get_hash_from_flowi6() argument
1982 memset(keys, 0, sizeof(*keys)); in __get_hash_from_flowi6()
1984 memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, in __get_hash_from_flowi6()
1985 sizeof(keys->addrs.v6addrs.src)); in __get_hash_from_flowi6()
1986 memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, in __get_hash_from_flowi6()
1987 sizeof(keys->addrs.v6addrs.dst)); in __get_hash_from_flowi6()
1988 keys->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; in __get_hash_from_flowi6()
1989 keys->ports.src = fl6->fl6_sport; in __get_hash_from_flowi6()
1990 keys->ports.dst = fl6->fl6_dport; in __get_hash_from_flowi6()
1991 keys->keyid.keyid = fl6->fl6_gre_key; in __get_hash_from_flowi6()
1992 keys->tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); in __get_hash_from_flowi6()
1993 keys->basic.ip_proto = fl6->flowi6_proto; in __get_hash_from_flowi6()
1995 return flow_hash_from_keys(keys); in __get_hash_from_flowi6()