skbuff.h (e3305138da47f0ae2241e5daa18af276e1e54457) skbuff.h (f96533cded173b3b019001a505a746c3cd8fc323)
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Definitions for the 'struct sk_buff' memory handlers.
4 *
5 * Authors:
6 * Alan Cox, <gw4pts@gw4pts.ampr.org>
7 * Florian La Roche, <rzsfl@rz.uni-sb.de>
8 */

--- 1278 unchanged lines hidden (view full) ---

1287__skb_set_sw_hash(struct sk_buff *skb, __u32 hash, bool is_l4)
1288{
1289 __skb_set_hash(skb, hash, true, is_l4);
1290}
1291
1292void __skb_get_hash(struct sk_buff *skb);
1293u32 __skb_get_hash_symmetric(const struct sk_buff *skb);
1294u32 skb_get_poff(const struct sk_buff *skb);
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Definitions for the 'struct sk_buff' memory handlers.
4 *
5 * Authors:
6 * Alan Cox, <gw4pts@gw4pts.ampr.org>
7 * Florian La Roche, <rzsfl@rz.uni-sb.de>
8 */

--- 1278 unchanged lines hidden (view full) ---

1287__skb_set_sw_hash(struct sk_buff *skb, __u32 hash, bool is_l4)
1288{
1289 __skb_set_hash(skb, hash, true, is_l4);
1290}
1291
1292void __skb_get_hash(struct sk_buff *skb);
1293u32 __skb_get_hash_symmetric(const struct sk_buff *skb);
1294u32 skb_get_poff(const struct sk_buff *skb);
1295u32 __skb_get_poff(const struct sk_buff *skb, void *data,
1295u32 __skb_get_poff(const struct sk_buff *skb, const void *data,
1296 const struct flow_keys_basic *keys, int hlen);
1297__be32 __skb_flow_get_ports(const struct sk_buff *skb, int thoff, u8 ip_proto,
1296 const struct flow_keys_basic *keys, int hlen);
1297__be32 __skb_flow_get_ports(const struct sk_buff *skb, int thoff, u8 ip_proto,
1298 void *data, int hlen_proto);
1298 const void *data, int hlen_proto);
1299
1300static inline __be32 skb_flow_get_ports(const struct sk_buff *skb,
1301 int thoff, u8 ip_proto)
1302{
1303 return __skb_flow_get_ports(skb, thoff, ip_proto, NULL, 0);
1304}
1305
1306void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
1307 const struct flow_dissector_key *key,
1308 unsigned int key_count);
1309
1310struct bpf_flow_dissector;
1311bool bpf_flow_dissect(struct bpf_prog *prog, struct bpf_flow_dissector *ctx,
1312 __be16 proto, int nhoff, int hlen, unsigned int flags);
1313
1314bool __skb_flow_dissect(const struct net *net,
1315 const struct sk_buff *skb,
1316 struct flow_dissector *flow_dissector,
1299
1300static inline __be32 skb_flow_get_ports(const struct sk_buff *skb,
1301 int thoff, u8 ip_proto)
1302{
1303 return __skb_flow_get_ports(skb, thoff, ip_proto, NULL, 0);
1304}
1305
1306void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
1307 const struct flow_dissector_key *key,
1308 unsigned int key_count);
1309
1310struct bpf_flow_dissector;
1311bool bpf_flow_dissect(struct bpf_prog *prog, struct bpf_flow_dissector *ctx,
1312 __be16 proto, int nhoff, int hlen, unsigned int flags);
1313
1314bool __skb_flow_dissect(const struct net *net,
1315 const struct sk_buff *skb,
1316 struct flow_dissector *flow_dissector,
1317 void *target_container,
1318 void *data, __be16 proto, int nhoff, int hlen,
1319 unsigned int flags);
1317 void *target_container, const void *data,
1318 __be16 proto, int nhoff, int hlen, unsigned int flags);
1320
1321static inline bool skb_flow_dissect(const struct sk_buff *skb,
1322 struct flow_dissector *flow_dissector,
1323 void *target_container, unsigned int flags)
1324{
1325 return __skb_flow_dissect(NULL, skb, flow_dissector,
1326 target_container, NULL, 0, 0, 0, flags);
1327}

--- 5 unchanged lines hidden (view full) ---

1333 memset(flow, 0, sizeof(*flow));
1334 return __skb_flow_dissect(NULL, skb, &flow_keys_dissector,
1335 flow, NULL, 0, 0, 0, flags);
1336}
1337
1338static inline bool
1339skb_flow_dissect_flow_keys_basic(const struct net *net,
1340 const struct sk_buff *skb,
1319
1320static inline bool skb_flow_dissect(const struct sk_buff *skb,
1321 struct flow_dissector *flow_dissector,
1322 void *target_container, unsigned int flags)
1323{
1324 return __skb_flow_dissect(NULL, skb, flow_dissector,
1325 target_container, NULL, 0, 0, 0, flags);
1326}

--- 5 unchanged lines hidden (view full) ---

1332 memset(flow, 0, sizeof(*flow));
1333 return __skb_flow_dissect(NULL, skb, &flow_keys_dissector,
1334 flow, NULL, 0, 0, 0, flags);
1335}
1336
1337static inline bool
1338skb_flow_dissect_flow_keys_basic(const struct net *net,
1339 const struct sk_buff *skb,
1341 struct flow_keys_basic *flow, void *data,
1342 __be16 proto, int nhoff, int hlen,
1343 unsigned int flags)
1340 struct flow_keys_basic *flow,
1341 const void *data, __be16 proto,
1342 int nhoff, int hlen, unsigned int flags)
1344{
1345 memset(flow, 0, sizeof(*flow));
1346 return __skb_flow_dissect(net, skb, &flow_keys_basic_dissector, flow,
1347 data, proto, nhoff, hlen, flags);
1348}
1349
1350void skb_flow_dissect_meta(const struct sk_buff *skb,
1351 struct flow_dissector *flow_dissector,

--- 3350 unchanged lines hidden ---
1343{
1344 memset(flow, 0, sizeof(*flow));
1345 return __skb_flow_dissect(net, skb, &flow_keys_basic_dissector, flow,
1346 data, proto, nhoff, hlen, flags);
1347}
1348
1349void skb_flow_dissect_meta(const struct sk_buff *skb,
1350 struct flow_dissector *flow_dissector,

--- 3350 unchanged lines hidden ---