Lines Matching refs:key

45 	struct fl_flow_key key;  member
66 struct fl_flow_key key; member
79 const u8 *bytes = (const u8 *) &mask->key; in fl_mask_update_range()
80 size_t size = sizeof(mask->key); in fl_mask_update_range()
83 for (i = 0; i < sizeof(mask->key); i++) { in fl_mask_update_range()
94 static void *fl_key_get_start(struct fl_flow_key *key, in fl_key_get_start() argument
97 return (u8 *) key + mask->range.start; in fl_key_get_start()
100 static void fl_set_masked_key(struct fl_flow_key *mkey, struct fl_flow_key *key, in fl_set_masked_key() argument
103 const long *lkey = fl_key_get_start(key, mask); in fl_set_masked_key()
104 const long *lmask = fl_key_get_start(&mask->key, mask); in fl_set_masked_key()
112 static void fl_clear_masked_range(struct fl_flow_key *key, in fl_clear_masked_range() argument
115 memset(fl_key_get_start(key, mask), 0, fl_mask_range(mask)); in fl_clear_masked_range()
237 struct fl_flow_key *key, struct fl_flow_key *mask) in fl_set_key() argument
244 key->indev_ifindex = err; in fl_set_key()
249 fl_set_key_val(tb, key->eth.dst, TCA_FLOWER_KEY_ETH_DST, in fl_set_key()
251 sizeof(key->eth.dst)); in fl_set_key()
252 fl_set_key_val(tb, key->eth.src, TCA_FLOWER_KEY_ETH_SRC, in fl_set_key()
254 sizeof(key->eth.src)); in fl_set_key()
256 fl_set_key_val(tb, &key->basic.n_proto, TCA_FLOWER_KEY_ETH_TYPE, in fl_set_key()
258 sizeof(key->basic.n_proto)); in fl_set_key()
260 if (key->basic.n_proto == htons(ETH_P_IP) || in fl_set_key()
261 key->basic.n_proto == htons(ETH_P_IPV6)) { in fl_set_key()
262 fl_set_key_val(tb, &key->basic.ip_proto, TCA_FLOWER_KEY_IP_PROTO, in fl_set_key()
264 sizeof(key->basic.ip_proto)); in fl_set_key()
268 key->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; in fl_set_key()
269 fl_set_key_val(tb, &key->ipv4.src, TCA_FLOWER_KEY_IPV4_SRC, in fl_set_key()
271 sizeof(key->ipv4.src)); in fl_set_key()
272 fl_set_key_val(tb, &key->ipv4.dst, TCA_FLOWER_KEY_IPV4_DST, in fl_set_key()
274 sizeof(key->ipv4.dst)); in fl_set_key()
276 key->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; in fl_set_key()
277 fl_set_key_val(tb, &key->ipv6.src, TCA_FLOWER_KEY_IPV6_SRC, in fl_set_key()
279 sizeof(key->ipv6.src)); in fl_set_key()
280 fl_set_key_val(tb, &key->ipv6.dst, TCA_FLOWER_KEY_IPV6_DST, in fl_set_key()
282 sizeof(key->ipv6.dst)); in fl_set_key()
285 if (key->basic.ip_proto == IPPROTO_TCP) { in fl_set_key()
286 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_TCP_SRC, in fl_set_key()
288 sizeof(key->tp.src)); in fl_set_key()
289 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_TCP_DST, in fl_set_key()
291 sizeof(key->tp.dst)); in fl_set_key()
292 } else if (key->basic.ip_proto == IPPROTO_UDP) { in fl_set_key()
293 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_UDP_SRC, in fl_set_key()
295 sizeof(key->tp.src)); in fl_set_key()
296 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_UDP_DST, in fl_set_key()
298 sizeof(key->tp.dst)); in fl_set_key()
307 const long *lmask1 = fl_key_get_start(&mask1->key, mask1); in fl_mask_eq()
308 const long *lmask2 = fl_key_get_start(&mask2->key, mask2); in fl_mask_eq()
416 err = fl_set_key(net, tb, &f->key, &mask->key); in fl_set_parms()
421 fl_set_masked_key(&f->mkey, &f->key, mask); in fl_set_parms()
577 struct fl_flow_key *key, *mask; in fl_dump() local
592 key = &f->key; in fl_dump()
593 mask = &head->mask.key; in fl_dump()
598 dev = __dev_get_by_index(net, key->indev_ifindex); in fl_dump()
603 if (fl_dump_key_val(skb, key->eth.dst, TCA_FLOWER_KEY_ETH_DST, in fl_dump()
605 sizeof(key->eth.dst)) || in fl_dump()
606 fl_dump_key_val(skb, key->eth.src, TCA_FLOWER_KEY_ETH_SRC, in fl_dump()
608 sizeof(key->eth.src)) || in fl_dump()
609 fl_dump_key_val(skb, &key->basic.n_proto, TCA_FLOWER_KEY_ETH_TYPE, in fl_dump()
611 sizeof(key->basic.n_proto))) in fl_dump()
613 if ((key->basic.n_proto == htons(ETH_P_IP) || in fl_dump()
614 key->basic.n_proto == htons(ETH_P_IPV6)) && in fl_dump()
615 fl_dump_key_val(skb, &key->basic.ip_proto, TCA_FLOWER_KEY_IP_PROTO, in fl_dump()
617 sizeof(key->basic.ip_proto))) in fl_dump()
620 if (key->control.addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS && in fl_dump()
621 (fl_dump_key_val(skb, &key->ipv4.src, TCA_FLOWER_KEY_IPV4_SRC, in fl_dump()
623 sizeof(key->ipv4.src)) || in fl_dump()
624 fl_dump_key_val(skb, &key->ipv4.dst, TCA_FLOWER_KEY_IPV4_DST, in fl_dump()
626 sizeof(key->ipv4.dst)))) in fl_dump()
628 else if (key->control.addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS && in fl_dump()
629 (fl_dump_key_val(skb, &key->ipv6.src, TCA_FLOWER_KEY_IPV6_SRC, in fl_dump()
631 sizeof(key->ipv6.src)) || in fl_dump()
632 fl_dump_key_val(skb, &key->ipv6.dst, TCA_FLOWER_KEY_IPV6_DST, in fl_dump()
634 sizeof(key->ipv6.dst)))) in fl_dump()
637 if (key->basic.ip_proto == IPPROTO_TCP && in fl_dump()
638 (fl_dump_key_val(skb, &key->tp.src, TCA_FLOWER_KEY_TCP_SRC, in fl_dump()
640 sizeof(key->tp.src)) || in fl_dump()
641 fl_dump_key_val(skb, &key->tp.dst, TCA_FLOWER_KEY_TCP_DST, in fl_dump()
643 sizeof(key->tp.dst)))) in fl_dump()
645 else if (key->basic.ip_proto == IPPROTO_UDP && in fl_dump()
646 (fl_dump_key_val(skb, &key->tp.src, TCA_FLOWER_KEY_UDP_SRC, in fl_dump()
648 sizeof(key->tp.src)) || in fl_dump()
649 fl_dump_key_val(skb, &key->tp.dst, TCA_FLOWER_KEY_UDP_DST, in fl_dump()
651 sizeof(key->tp.dst)))) in fl_dump()