/
usr
/
src
/
kernels
/
4.18.0-553.121.1.el8_10.x86_64
/
include
/
net
/
/usr/src/kernels/4.18.0-553.121.1.el8_10.x86_64/include/net
mkdir
upload
Name
Size
Mode
Actions
9p/
-
0755
rm
bluetooth/
-
0755
rm
caif/
-
0755
rm
iucv/
-
0755
rm
mana/
-
0755
rm
netfilter/
-
0755
rm
netns/
-
0755
rm
nfc/
-
0755
rm
phonet/
-
0755
rm
sctp/
-
0755
rm
tc_act/
-
0755
rm
6lowpan.h
10271
0644
edit
dl
rm
act_api.h
9478
0644
edit
dl
rm
addrconf.h
13826
0644
edit
dl
rm
af_ieee802154.h
1591
0644
edit
dl
rm
af_rxrpc.h
2976
0644
edit
dl
rm
af_unix.h
2272
0644
edit
dl
rm
af_vsock.h
7295
0644
edit
dl
rm
ah.h
382
0644
edit
dl
rm
arp.h
2052
0644
edit
dl
rm
atmclip.h
1515
0644
edit
dl
rm
ax25.h
14999
0644
edit
dl
rm
ax88796.h
1488
0644
edit
dl
rm
bareudp.h
333
0644
edit
dl
rm
bonding.h
20225
0644
edit
dl
rm
bond_3ad.h
9629
0644
edit
dl
rm
bond_alb.h
6251
0644
edit
dl
rm
bond_options.h
3916
0644
edit
dl
rm
bpf_sk_storage.h
1802
0644
edit
dl
rm
busy_poll.h
4973
0644
edit
dl
rm
calipso.h
2199
0644
edit
dl
rm
cfg80211-wext.h
1900
0644
edit
dl
rm
cfg80211.h
325844
0644
edit
dl
rm
cfg802154.h
11175
0644
edit
dl
rm
checksum.h
4850
0644
edit
dl
rm
cipso_ipv4.h
8399
0644
edit
dl
rm
cls_cgroup.h
2301
0644
edit
dl
rm
codel.h
6000
0644
edit
dl
rm
codel_impl.h
8500
0644
edit
dl
rm
codel_qdisc.h
3001
0644
edit
dl
rm
compat.h
1711
0644
edit
dl
rm
datalink.h
619
0644
edit
dl
rm
dcbevent.h
1293
0644
edit
dl
rm
dcbnl.h
5267
0644
edit
dl
rm
devlink.h
64711
0644
edit
dl
rm
dn.h
7046
0644
edit
dl
rm
dn_dev.h
5488
0644
edit
dl
rm
dn_fib.h
4077
0644
edit
dl
rm
dn_neigh.h
968
0644
edit
dl
rm
dn_nsp.h
5966
0644
edit
dl
rm
dn_route.h
4500
0644
edit
dl
rm
dropreason-core.h
12063
0644
edit
dl
rm
drop_monitor.h
901
0644
edit
dl
rm
dsa.h
16605
0644
edit
dl
rm
dsfield.h
1139
0644
edit
dl
rm
dst.h
14870
0644
edit
dl
rm
dst_cache.h
2596
0644
edit
dl
rm
dst_metadata.h
5521
0644
edit
dl
rm
dst_ops.h
2564
0644
edit
dl
rm
erspan.h
8527
0644
edit
dl
rm
esp.h
1190
0644
edit
dl
rm
espintcp.h
966
0644
edit
dl
rm
ethoc.h
537
0644
edit
dl
rm
failover.h
1178
0644
edit
dl
rm
fib_notifier.h
1476
0644
edit
dl
rm
fib_rules.h
5728
0644
edit
dl
rm
firewire.h
636
0644
edit
dl
rm
flow.h
6353
0644
edit
dl
rm
flow_dissector.h
11284
0644
edit
dl
rm
flow_offload.h
17797
0644
edit
dl
rm
fou.h
549
0644
edit
dl
rm
fq.h
2497
0644
edit
dl
rm
fq_impl.h
8144
0644
edit
dl
rm
garp.h
2678
0644
edit
dl
rm
genetlink.h
14647
0644
edit
dl
rm
geneve.h
1898
0644
edit
dl
rm
gen_stats.h
3034
0644
edit
dl
rm
gre.h
3377
0644
edit
dl
rm
gro_cells.h
443
0644
edit
dl
rm
gtp.h
633
0644
edit
dl
rm
gue.h
3311
0644
edit
dl
rm
hwbm.h
937
0644
edit
dl
rm
icmp.h
1765
0644
edit
dl
rm
ieee80211_radiotap.h
23017
0644
edit
dl
rm
ieee802154_netdev.h
9358
0644
edit
dl
rm
ife.h
1057
0644
edit
dl
rm
if_inet6.h
6591
0644
edit
dl
rm
ila.h
498
0644
edit
dl
rm
inet6_connection_sock.h
976
0644
edit
dl
rm
inet6_hashtables.h
3746
0644
edit
dl
rm
inetpeer.h
3372
0644
edit
dl
rm
inet_common.h
2614
0644
edit
dl
rm
inet_connection_sock.h
11981
0644
edit
dl
rm
inet_ecn.h
8071
0644
edit
dl
rm
inet_frag.h
4816
0644
edit
dl
rm
inet_hashtables.h
13847
0644
edit
dl
rm
inet_sock.h
9828
0644
edit
dl
rm
inet_timewait_sock.h
3926
0644
edit
dl
rm
ip.h
21354
0644
edit
dl
rm
ip6_checksum.h
2981
0644
edit
dl
rm
ip6_fib.h
13766
0644
edit
dl
rm
ip6_route.h
9228
0644
edit
dl
rm
ip6_tunnel.h
5096
0644
edit
dl
rm
ipcomp.h
659
0644
edit
dl
rm
ipconfig.h
811
0644
edit
dl
rm
ipv6.h
32741
0644
edit
dl
rm
ipv6_frag.h
3321
0644
edit
dl
rm
ipv6_stubs.h
2671
0644
edit
dl
rm
ipx.h
4386
0644
edit
dl
rm
ip_fib.h
14290
0644
edit
dl
rm
ip_tunnels.h
14697
0644
edit
dl
rm
ip_vs.h
49407
0644
edit
dl
rm
iw_handler.h
21413
0644
edit
dl
rm
kcm.h
5083
0644
edit
dl
rm
l3mdev.h
6743
0644
edit
dl
rm
lag.h
409
0644
edit
dl
rm
lapb.h
4869
0644
edit
dl
rm
lib80211.h
4017
0644
edit
dl
rm
llc.h
4464
0644
edit
dl
rm
llc_conn.h
4155
0644
edit
dl
rm
llc_c_ac.h
9537
0644
edit
dl
rm
llc_c_ev.h
10940
0644
edit
dl
rm
llc_c_st.h
1762
0644
edit
dl
rm
llc_if.h
2210
0644
edit
dl
rm
llc_pdu.h
14783
0644
edit
dl
rm
llc_sap.h
1108
0644
edit
dl
rm
llc_s_ac.h
1591
0644
edit
dl
rm
llc_s_ev.h
2255
0644
edit
dl
rm
llc_s_st.h
947
0644
edit
dl
rm
lwtunnel.h
6563
0644
edit
dl
rm
mac80211.h
294437
0644
edit
dl
rm
mac802154.h
15633
0644
edit
dl
rm
mip6.h
1617
0644
edit
dl
rm
mld.h
2870
0644
edit
dl
rm
mpls.h
1340
0644
edit
dl
rm
mpls_iptunnel.h
827
0644
edit
dl
rm
mptcp.h
6242
0644
edit
dl
rm
mrp.h
3103
0644
edit
dl
rm
ncsi.h
1964
0644
edit
dl
rm
ndisc.h
15095
0644
edit
dl
rm
neighbour.h
16289
0644
edit
dl
rm
netdev_queues.h
5609
0644
edit
dl
rm
netevent.h
1044
0644
edit
dl
rm
netlabel.h
21236
0644
edit
dl
rm
netlink.h
63253
0644
edit
dl
rm
netprio_cgroup.h
1260
0644
edit
dl
rm
netrom.h
7896
0644
edit
dl
rm
net_failover.h
1023
0644
edit
dl
rm
net_namespace.h
14177
0644
edit
dl
rm
net_ratelimit.h
220
0644
edit
dl
rm
nexthop.h
865
0644
edit
dl
rm
nl802154.h
12385
0644
edit
dl
rm
nsh.h
12602
0644
edit
dl
rm
p8022.h
447
0644
edit
dl
rm
page_pool.h
6985
0644
edit
dl
rm
pie.h
3684
0644
edit
dl
rm
ping.h
3197
0644
edit
dl
rm
pkt_cls.h
26178
0644
edit
dl
rm
pkt_sched.h
6543
0644
edit
dl
rm
pptp.h
557
0644
edit
dl
rm
protocol.h
4320
0644
edit
dl
rm
psample.h
1083
0644
edit
dl
rm
psnap.h
351
0644
edit
dl
rm
raw.h
2161
0644
edit
dl
rm
rawv6.h
856
0644
edit
dl
rm
red.h
11600
0644
edit
dl
rm
regulatory.h
10961
0644
edit
dl
rm
request_sock.h
6871
0644
edit
dl
rm
rose.h
7802
0644
edit
dl
rm
route.h
11390
0644
edit
dl
rm
rsi_91x.h
1710
0644
edit
dl
rm
rtnetlink.h
7212
0644
edit
dl
rm
sch_generic.h
33841
0644
edit
dl
rm
scm.h
3671
0644
edit
dl
rm
secure_seq.h
855
0644
edit
dl
rm
seg6.h
1874
0644
edit
dl
rm
seg6_hmac.h
1699
0644
edit
dl
rm
seg6_local.h
870
0644
edit
dl
rm
slhc_vj.h
6831
0644
edit
dl
rm
smc.h
2155
0644
edit
dl
rm
snmp.h
5482
0644
edit
dl
rm
sock.h
79182
0644
edit
dl
rm
sock_reuseport.h
1565
0644
edit
dl
rm
Space.h
1094
0644
edit
dl
rm
stp.h
383
0644
edit
dl
rm
strparser.h
4340
0644
edit
dl
rm
switchdev.h
17812
0644
edit
dl
rm
tcp.h
73125
0644
edit
dl
rm
tcp_states.h
1540
0644
edit
dl
rm
tc_wrapper.h
7033
0644
edit
dl
rm
timewait_sock.h
1136
0644
edit
dl
rm
tipc.h
2405
0644
edit
dl
rm
tls.h
21363
0644
edit
dl
rm
tls_toe.h
3006
0644
edit
dl
rm
transp_v6.h
1996
0644
edit
dl
rm
tso.h
515
0644
edit
dl
rm
tun_proto.h
988
0644
edit
dl
rm
udp.h
16481
0644
edit
dl
rm
udplite.h
3762
0644
edit
dl
rm
udp_tunnel.h
13376
0644
edit
dl
rm
vsock_addr.h
662
0644
edit
dl
rm
vxlan.h
13541
0644
edit
dl
rm
wext.h
1510
0644
edit
dl
rm
wimax.h
20445
0644
edit
dl
rm
x25.h
9658
0644
edit
dl
rm
x25device.h
387
0644
edit
dl
rm
xdp.h
9436
0644
edit
dl
rm
xdp_priv.h
446
0644
edit
dl
rm
xdp_sock.h
2094
0644
edit
dl
rm
xdp_sock_drv.h
6423
0644
edit
dl
rm
xfrm.h
59628
0644
edit
dl
rm
xsk_buff_pool.h
6550
0644
edit
dl
rm
Edit:
/usr/src/kernels/4.18.0-553.121.1.el8_10.x86_64/include/net/flow_dissector.h
(11284B)
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _NET_FLOW_DISSECTOR_H #define _NET_FLOW_DISSECTOR_H #include <linux/types.h> #include <linux/in6.h> #include <linux/siphash.h> #include <linux/string.h> #include <uapi/linux/if_ether.h> struct bpf_prog; struct net; struct sk_buff; /** * struct flow_dissector_key_control: * @thoff: Transport header offset */ struct flow_dissector_key_control { u16 thoff; u16 addr_type; u32 flags; }; #define FLOW_DIS_IS_FRAGMENT BIT(0) #define FLOW_DIS_FIRST_FRAG BIT(1) #define FLOW_DIS_ENCAPSULATION BIT(2) enum flow_dissect_ret { FLOW_DISSECT_RET_OUT_GOOD, FLOW_DISSECT_RET_OUT_BAD, FLOW_DISSECT_RET_PROTO_AGAIN, FLOW_DISSECT_RET_IPPROTO_AGAIN, FLOW_DISSECT_RET_CONTINUE, }; /** * struct flow_dissector_key_basic: * @n_proto: Network header protocol (eg. IPv4/IPv6) * @ip_proto: Transport header protocol (eg. TCP/UDP) */ struct flow_dissector_key_basic { __be16 n_proto; u8 ip_proto; u8 padding; }; struct flow_dissector_key_tags { u32 flow_label; }; struct flow_dissector_key_vlan { union { struct { u16 vlan_id:12, vlan_dei:1, vlan_priority:3; }; __be16 vlan_tci; }; __be16 vlan_tpid; __be16 vlan_eth_type; u16 padding; }; struct flow_dissector_mpls_lse { u32 mpls_ttl:8, mpls_bos:1, mpls_tc:3, mpls_label:20; }; #define FLOW_DIS_MPLS_MAX 7 struct flow_dissector_key_mpls { struct flow_dissector_mpls_lse ls[FLOW_DIS_MPLS_MAX]; /* Label Stack */ u8 used_lses; /* One bit set for each Label Stack Entry in use */ }; static inline void dissector_set_mpls_lse(struct flow_dissector_key_mpls *mpls, int lse_index) { mpls->used_lses |= 1 << lse_index; } #define FLOW_DIS_TUN_OPTS_MAX 255 /** * struct flow_dissector_key_enc_opts: * @data: tunnel option data * @len: length of tunnel option data * @dst_opt_type: tunnel option type */ struct flow_dissector_key_enc_opts { u8 data[FLOW_DIS_TUN_OPTS_MAX]; /* Using IP_TUNNEL_OPTS_MAX is desired * here but seems difficult to #include */ u8 len; __be16 dst_opt_type; }; struct flow_dissector_key_keyid { __be32 keyid; }; /** * struct flow_dissector_key_ipv4_addrs: * @src: source ip address * @dst: destination ip address */ struct flow_dissector_key_ipv4_addrs { /* (src,dst) must be grouped, in the same way than in IP header */ __be32 src; __be32 dst; }; /** * struct flow_dissector_key_ipv6_addrs: * @src: source ip address * @dst: destination ip address */ struct flow_dissector_key_ipv6_addrs { /* (src,dst) must be grouped, in the same way than in IP header */ struct in6_addr src; struct in6_addr dst; }; /** * struct flow_dissector_key_tipc: * @key: source node address combined with selector */ struct flow_dissector_key_tipc { __be32 key; }; /** * struct flow_dissector_key_addrs: * @v4addrs: IPv4 addresses * @v6addrs: IPv6 addresses */ struct flow_dissector_key_addrs { union { struct flow_dissector_key_ipv4_addrs v4addrs; struct flow_dissector_key_ipv6_addrs v6addrs; struct flow_dissector_key_tipc tipckey; }; }; /** * flow_dissector_key_arp: * @ports: Operation, source and target addresses for an ARP header * for Ethernet hardware addresses and IPv4 protocol addresses * sip: Sender IP address * tip: Target IP address * op: Operation * sha: Sender hardware address * tpa: Target hardware address */ struct flow_dissector_key_arp { __u32 sip; __u32 tip; __u8 op; unsigned char sha[ETH_ALEN]; unsigned char tha[ETH_ALEN]; }; /** * flow_dissector_key_tp_ports: * @ports: port numbers of Transport header * src: source port number * dst: destination port number */ struct flow_dissector_key_ports { union { __be32 ports; struct { __be16 src; __be16 dst; }; }; }; /** * struct flow_dissector_key_ports_range * @tp: port number from packet * @tp_min: min port number in range * @tp_max: max port number in range */ struct flow_dissector_key_ports_range { union { struct flow_dissector_key_ports tp; struct { struct flow_dissector_key_ports tp_min; struct flow_dissector_key_ports tp_max; }; }; }; /** * flow_dissector_key_icmp: * type: ICMP type * code: ICMP code * id: session identifier */ struct flow_dissector_key_icmp { struct { u8 type; u8 code; }; u16 id; }; /** * struct flow_dissector_key_eth_addrs: * @src: source Ethernet address * @dst: destination Ethernet address */ struct flow_dissector_key_eth_addrs { /* (dst,src) must be grouped, in the same way than in ETH header */ unsigned char dst[ETH_ALEN]; unsigned char src[ETH_ALEN]; }; /** * struct flow_dissector_key_tcp: * @flags: flags */ struct flow_dissector_key_tcp { __be16 flags; }; /** * struct flow_dissector_key_ip: * @tos: tos * @ttl: ttl */ struct flow_dissector_key_ip { __u8 tos; __u8 ttl; }; /** * struct flow_dissector_key_meta: * @ingress_ifindex: ingress ifindex * @ingress_iftype: ingress interface type */ struct flow_dissector_key_meta { int ingress_ifindex; u16 ingress_iftype; }; /** * struct flow_dissector_key_ct: * @ct_state: conntrack state after converting with map * @ct_mark: conttrack mark * @ct_zone: conntrack zone * @ct_labels: conntrack labels */ struct flow_dissector_key_ct { u16 ct_state; u16 ct_zone; u32 ct_mark; u32 ct_labels[4]; }; /** * struct flow_dissector_key_hash: * @hash: hash value */ struct flow_dissector_key_hash { u32 hash; }; /** * struct flow_dissector_key_num_of_vlans: * @num_of_vlans: num_of_vlans value */ struct flow_dissector_key_num_of_vlans { u8 num_of_vlans; }; /** * struct flow_dissector_key_pppoe: * @session_id: pppoe session id * @ppp_proto: ppp protocol * @type: pppoe eth type */ struct flow_dissector_key_pppoe { __be16 session_id; __be16 ppp_proto; __be16 type; }; /** * struct flow_dissector_key_l2tpv3: * @session_id: identifier for a l2tp session */ struct flow_dissector_key_l2tpv3 { __be32 session_id; }; enum flow_dissector_key_id { FLOW_DISSECTOR_KEY_CONTROL, /* struct flow_dissector_key_control */ FLOW_DISSECTOR_KEY_BASIC, /* struct flow_dissector_key_basic */ FLOW_DISSECTOR_KEY_IPV4_ADDRS, /* struct flow_dissector_key_ipv4_addrs */ FLOW_DISSECTOR_KEY_IPV6_ADDRS, /* struct flow_dissector_key_ipv6_addrs */ FLOW_DISSECTOR_KEY_PORTS, /* struct flow_dissector_key_ports */ FLOW_DISSECTOR_KEY_PORTS_RANGE, /* struct flow_dissector_key_ports */ FLOW_DISSECTOR_KEY_ICMP, /* struct flow_dissector_key_icmp */ FLOW_DISSECTOR_KEY_ETH_ADDRS, /* struct flow_dissector_key_eth_addrs */ FLOW_DISSECTOR_KEY_TIPC, /* struct flow_dissector_key_tipc */ FLOW_DISSECTOR_KEY_ARP, /* struct flow_dissector_key_arp */ FLOW_DISSECTOR_KEY_VLAN, /* struct flow_dissector_key_vlan */ FLOW_DISSECTOR_KEY_FLOW_LABEL, /* struct flow_dissector_key_tags */ FLOW_DISSECTOR_KEY_GRE_KEYID, /* struct flow_dissector_key_keyid */ FLOW_DISSECTOR_KEY_MPLS_ENTROPY, /* struct flow_dissector_key_keyid */ FLOW_DISSECTOR_KEY_ENC_KEYID, /* struct flow_dissector_key_keyid */ FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS, /* struct flow_dissector_key_ipv4_addrs */ FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS, /* struct flow_dissector_key_ipv6_addrs */ FLOW_DISSECTOR_KEY_ENC_CONTROL, /* struct flow_dissector_key_control */ FLOW_DISSECTOR_KEY_ENC_PORTS, /* struct flow_dissector_key_ports */ FLOW_DISSECTOR_KEY_MPLS, /* struct flow_dissector_key_mpls */ FLOW_DISSECTOR_KEY_TCP, /* struct flow_dissector_key_tcp */ FLOW_DISSECTOR_KEY_IP, /* struct flow_dissector_key_ip */ FLOW_DISSECTOR_KEY_CVLAN, /* struct flow_dissector_key_vlan */ FLOW_DISSECTOR_KEY_ENC_IP, /* struct flow_dissector_key_ip */ FLOW_DISSECTOR_KEY_ENC_OPTS, /* struct flow_dissector_key_enc_opts */ FLOW_DISSECTOR_KEY_META, /* struct flow_dissector_key_meta */ FLOW_DISSECTOR_KEY_CT, /* struct flow_dissector_key_ct */ FLOW_DISSECTOR_KEY_HASH, /* struct flow_dissector_key_hash */ FLOW_DISSECTOR_KEY_NUM_OF_VLANS, /* struct flow_dissector_key_num_of_vlans */ FLOW_DISSECTOR_KEY_PPPOE, /* struct flow_dissector_key_pppoe */ FLOW_DISSECTOR_KEY_L2TPV3, /* struct flow_dissector_key_l2tpv3 */ FLOW_DISSECTOR_KEY_MAX, }; #define FLOW_DISSECTOR_F_PARSE_1ST_FRAG BIT(0) #define FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL BIT(1) #define FLOW_DISSECTOR_F_STOP_AT_ENCAP BIT(2) #define FLOW_DISSECTOR_F_STOP_BEFORE_ENCAP BIT(3) struct flow_dissector_key { enum flow_dissector_key_id key_id; size_t offset; /* offset of struct flow_dissector_key_* in target the struct */ }; struct flow_dissector { unsigned int used_keys; /* each bit repesents presence of one key id */ unsigned short int offset[FLOW_DISSECTOR_KEY_MAX]; }; struct flow_keys_basic { struct flow_dissector_key_control control; struct flow_dissector_key_basic basic; }; struct flow_keys { struct flow_dissector_key_control control; #define FLOW_KEYS_HASH_START_FIELD basic struct flow_dissector_key_basic basic __aligned(SIPHASH_ALIGNMENT); struct flow_dissector_key_tags tags; struct flow_dissector_key_vlan vlan; struct flow_dissector_key_vlan cvlan; struct flow_dissector_key_keyid keyid; struct flow_dissector_key_ports ports; struct flow_dissector_key_icmp icmp; /* 'addrs' must be the last member */ struct flow_dissector_key_addrs addrs; }; #define FLOW_KEYS_HASH_OFFSET \ offsetof(struct flow_keys, FLOW_KEYS_HASH_START_FIELD) __be32 flow_get_u32_src(const struct flow_keys *flow); __be32 flow_get_u32_dst(const struct flow_keys *flow); extern struct flow_dissector flow_keys_dissector; extern struct flow_dissector flow_keys_basic_dissector; /* struct flow_keys_digest: * * This structure is used to hold a digest of the full flow keys. This is a * larger "hash" of a flow to allow definitively matching specific flows where * the 32 bit skb->hash is not large enough. The size is limited to 16 bytes so * that it can be used in CB of skb (see sch_choke for an example). */ #define FLOW_KEYS_DIGEST_LEN 16 struct flow_keys_digest { u8 data[FLOW_KEYS_DIGEST_LEN]; }; void make_flow_keys_digest(struct flow_keys_digest *digest, const struct flow_keys *flow); static inline bool flow_keys_have_l4(const struct flow_keys *keys) { return (keys->ports.ports || keys->tags.flow_label); } u32 flow_hash_from_keys(struct flow_keys *keys); void skb_flow_get_icmp_tci(const struct sk_buff *skb, struct flow_dissector_key_icmp *key_icmp, void *data, int thoff, int hlen); static inline bool dissector_uses_key(const struct flow_dissector *flow_dissector, enum flow_dissector_key_id key_id) { return flow_dissector->used_keys & (1 << key_id); } static inline void *skb_flow_dissector_target(struct flow_dissector *flow_dissector, enum flow_dissector_key_id key_id, void *target_container) { return ((char *)target_container) + flow_dissector->offset[key_id]; } struct bpf_flow_dissector { struct bpf_flow_keys *flow_keys; const struct sk_buff *skb; void *data; void *data_end; }; static inline void flow_dissector_init_keys(struct flow_dissector_key_control *key_control, struct flow_dissector_key_basic *key_basic) { memset(key_control, 0, sizeof(*key_control)); memset(key_basic, 0, sizeof(*key_basic)); } #ifdef CONFIG_BPF_SYSCALL int flow_dissector_bpf_prog_attach_check(struct net *net, struct bpf_prog *prog); #endif /* CONFIG_BPF_SYSCALL */ #endif
Save
cmd:
run