cls_flower.c (28f2aff1caa4997f58ca31179cad1b4a84a62827) | cls_flower.c (8a9093c79863b58cc2f9874d7ae788f0d622a596) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * net/sched/cls_flower.c Flower classifier 4 * 5 * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> 6 */ 7 8#include <linux/kernel.h> --- 291 unchanged lines hidden (view full) --- 300{ 301 struct cls_fl_head *head = rcu_dereference_bh(tp->root); 302 struct fl_flow_key skb_mkey; 303 struct fl_flow_key skb_key; 304 struct fl_flow_mask *mask; 305 struct cls_fl_filter *f; 306 307 list_for_each_entry_rcu(mask, &head->masks, list) { | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * net/sched/cls_flower.c Flower classifier 4 * 5 * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> 6 */ 7 8#include <linux/kernel.h> --- 291 unchanged lines hidden (view full) --- 300{ 301 struct cls_fl_head *head = rcu_dereference_bh(tp->root); 302 struct fl_flow_key skb_mkey; 303 struct fl_flow_key skb_key; 304 struct fl_flow_mask *mask; 305 struct cls_fl_filter *f; 306 307 list_for_each_entry_rcu(mask, &head->masks, list) { |
308 flow_dissector_init_keys(&skb_key.control, &skb_key.basic); |
|
308 fl_clear_masked_range(&skb_key, mask); 309 310 skb_flow_dissect_meta(skb, &mask->dissector, &skb_key); 311 /* skb_flow_dissect() does not set n_proto in case an unknown 312 * protocol, so do it rather here. 313 */ 314 skb_key.basic.n_proto = skb->protocol; 315 skb_flow_dissect_tunnel_info(skb, &mask->dissector, &skb_key); --- 2516 unchanged lines hidden --- | 309 fl_clear_masked_range(&skb_key, mask); 310 311 skb_flow_dissect_meta(skb, &mask->dissector, &skb_key); 312 /* skb_flow_dissect() does not set n_proto in case an unknown 313 * protocol, so do it rather here. 314 */ 315 skb_key.basic.n_proto = skb->protocol; 316 skb_flow_dissect_tunnel_info(skb, &mask->dissector, &skb_key); --- 2516 unchanged lines hidden --- |