/usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/net
NameSizeModeActions
9p/-0755rm
bluetooth/-0755rm
caif/-0755rm
iucv/-0755rm
mana/-0755rm
netfilter/-0755rm
netns/-0755rm
nfc/-0755rm
phonet/-0755rm
sctp/-0755rm
tc_act/-0755rm
6lowpan.h102710644editdlrm
act_api.h95590644editdlrm
addrconf.h138260644editdlrm
af_ieee802154.h15910644editdlrm
af_rxrpc.h29760644editdlrm
af_unix.h22720644editdlrm
af_vsock.h72950644editdlrm
ah.h3820644editdlrm
arp.h20520644editdlrm
atmclip.h15150644editdlrm
ax25.h149990644editdlrm
ax88796.h14880644editdlrm
bareudp.h3330644editdlrm
bonding.h202250644editdlrm
bond_3ad.h96290644editdlrm
bond_alb.h62510644editdlrm
bond_options.h39160644editdlrm
bpf_sk_storage.h18020644editdlrm
busy_poll.h49730644editdlrm
calipso.h21990644editdlrm
cfg80211-wext.h19000644editdlrm
cfg80211.h3258440644editdlrm
cfg802154.h111750644editdlrm
checksum.h48500644editdlrm
cipso_ipv4.h83990644editdlrm
cls_cgroup.h23010644editdlrm
codel.h60000644editdlrm
codel_impl.h85000644editdlrm
codel_qdisc.h30010644editdlrm
compat.h17110644editdlrm
datalink.h6190644editdlrm
dcbevent.h12930644editdlrm
dcbnl.h52670644editdlrm
devlink.h647110644editdlrm
dn.h70460644editdlrm
dn_dev.h54880644editdlrm
dn_fib.h40770644editdlrm
dn_neigh.h9680644editdlrm
dn_nsp.h59660644editdlrm
dn_route.h45000644editdlrm
dropreason-core.h120630644editdlrm
drop_monitor.h9010644editdlrm
dsa.h166050644editdlrm
dsfield.h11390644editdlrm
dst.h148700644editdlrm
dst_cache.h25960644editdlrm
dst_metadata.h55210644editdlrm
dst_ops.h25640644editdlrm
erspan.h85270644editdlrm
esp.h11900644editdlrm
espintcp.h9660644editdlrm
ethoc.h5370644editdlrm
failover.h11780644editdlrm
fib_notifier.h14760644editdlrm
fib_rules.h57280644editdlrm
firewire.h6360644editdlrm
flow.h63530644editdlrm
flow_dissector.h112840644editdlrm
flow_offload.h177970644editdlrm
fou.h5490644editdlrm
fq.h24970644editdlrm
fq_impl.h81440644editdlrm
garp.h26780644editdlrm
genetlink.h146470644editdlrm
geneve.h18980644editdlrm
gen_stats.h30340644editdlrm
gre.h33770644editdlrm
gro_cells.h4430644editdlrm
gtp.h6330644editdlrm
gue.h33110644editdlrm
hwbm.h9370644editdlrm
icmp.h17650644editdlrm
ieee80211_radiotap.h230170644editdlrm
ieee802154_netdev.h93580644editdlrm
ife.h10570644editdlrm
if_inet6.h65910644editdlrm
ila.h4980644editdlrm
inet6_connection_sock.h9760644editdlrm
inet6_hashtables.h37460644editdlrm
inetpeer.h33720644editdlrm
inet_common.h26140644editdlrm
inet_connection_sock.h120700644editdlrm
inet_ecn.h80710644editdlrm
inet_frag.h48160644editdlrm
inet_hashtables.h138470644editdlrm
inet_sock.h98280644editdlrm
inet_timewait_sock.h39260644editdlrm
ip.h213540644editdlrm
ip6_checksum.h29810644editdlrm
ip6_fib.h137660644editdlrm
ip6_route.h92280644editdlrm
ip6_tunnel.h50960644editdlrm
ipcomp.h6590644editdlrm
ipconfig.h8110644editdlrm
ipv6.h327410644editdlrm
ipv6_frag.h33210644editdlrm
ipv6_stubs.h26710644editdlrm
ipx.h43860644editdlrm
ip_fib.h142900644editdlrm
ip_tunnels.h146970644editdlrm
ip_vs.h494070644editdlrm
iw_handler.h214130644editdlrm
kcm.h50830644editdlrm
l3mdev.h67430644editdlrm
lag.h4090644editdlrm
lapb.h48690644editdlrm
lib80211.h40170644editdlrm
llc.h44640644editdlrm
llc_conn.h41550644editdlrm
llc_c_ac.h95370644editdlrm
llc_c_ev.h109400644editdlrm
llc_c_st.h17620644editdlrm
llc_if.h22100644editdlrm
llc_pdu.h147830644editdlrm
llc_sap.h11080644editdlrm
llc_s_ac.h15910644editdlrm
llc_s_ev.h22550644editdlrm
llc_s_st.h9470644editdlrm
lwtunnel.h65630644editdlrm
mac80211.h2944370644editdlrm
mac802154.h156330644editdlrm
mip6.h16170644editdlrm
mld.h28700644editdlrm
mpls.h13400644editdlrm
mpls_iptunnel.h8270644editdlrm
mptcp.h62420644editdlrm
mrp.h31030644editdlrm
ncsi.h19640644editdlrm
ndisc.h150950644editdlrm
neighbour.h162890644editdlrm
netdev_queues.h56090644editdlrm
netevent.h10440644editdlrm
netlabel.h212360644editdlrm
netlink.h632530644editdlrm
netprio_cgroup.h12600644editdlrm
netrom.h78960644editdlrm
net_failover.h10230644editdlrm
net_namespace.h141770644editdlrm
net_ratelimit.h2200644editdlrm
nexthop.h8650644editdlrm
nl802154.h123850644editdlrm
nsh.h126020644editdlrm
p8022.h4470644editdlrm
page_pool.h69850644editdlrm
pie.h36840644editdlrm
ping.h31970644editdlrm
pkt_cls.h261780644editdlrm
pkt_sched.h65430644editdlrm
pptp.h5570644editdlrm
protocol.h43200644editdlrm
psample.h10830644editdlrm
psnap.h3510644editdlrm
raw.h21610644editdlrm
rawv6.h8560644editdlrm
red.h116000644editdlrm
regulatory.h109610644editdlrm
request_sock.h68710644editdlrm
rose.h78020644editdlrm
route.h113900644editdlrm
rsi_91x.h17100644editdlrm
rtnetlink.h73170644editdlrm
sch_generic.h338410644editdlrm
scm.h36710644editdlrm
secure_seq.h8550644editdlrm
seg6.h18740644editdlrm
seg6_hmac.h16990644editdlrm
seg6_local.h8700644editdlrm
slhc_vj.h68310644editdlrm
smc.h21550644editdlrm
snmp.h54820644editdlrm
sock.h791820644editdlrm
sock_reuseport.h15650644editdlrm
Space.h10940644editdlrm
stp.h3830644editdlrm
strparser.h43400644editdlrm
switchdev.h178120644editdlrm
tcp.h732060644editdlrm
tcp_states.h15400644editdlrm
tc_wrapper.h70330644editdlrm
timewait_sock.h11360644editdlrm
tipc.h24050644editdlrm
tls.h213630644editdlrm
tls_toe.h30060644editdlrm
transp_v6.h19960644editdlrm
tso.h5150644editdlrm
tun_proto.h9880644editdlrm
udp.h164810644editdlrm
udplite.h37620644editdlrm
udp_tunnel.h133760644editdlrm
vsock_addr.h6620644editdlrm
vxlan.h135410644editdlrm
wext.h15100644editdlrm
wimax.h204450644editdlrm
x25.h96580644editdlrm
x25device.h3870644editdlrm
xdp.h94360644editdlrm
xdp_priv.h4460644editdlrm
xdp_sock.h20940644editdlrm
xdp_sock_drv.h64230644editdlrm
xfrm.h596280644editdlrm
xsk_buff_pool.h65500644editdlrm
Edit: /usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/net/cipso_ipv4.h (8399B)
/* * CIPSO - Commercial IP Security Option * * This is an implementation of the CIPSO 2.2 protocol as specified in * draft-ietf-cipso-ipsecurity-01.txt with additional tag types as found in * FIPS-188, copies of both documents can be found in the Documentation * directory. While CIPSO never became a full IETF RFC standard many vendors * have chosen to adopt the protocol and over the years it has become a * de-facto standard for labeled networking. * * Author: Paul Moore * */ /* * (c) Copyright Hewlett-Packard Development Company, L.P., 2006 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _CIPSO_IPV4_H #define _CIPSO_IPV4_H #include #include #include #include #include #include #include #include #include #include /* known doi values */ #define CIPSO_V4_DOI_UNKNOWN 0x00000000 /* standard tag types */ #define CIPSO_V4_TAG_INVALID 0 #define CIPSO_V4_TAG_RBITMAP 1 #define CIPSO_V4_TAG_ENUM 2 #define CIPSO_V4_TAG_RANGE 5 #define CIPSO_V4_TAG_PBITMAP 6 #define CIPSO_V4_TAG_FREEFORM 7 /* non-standard tag types (tags > 127) */ #define CIPSO_V4_TAG_LOCAL 128 /* doi mapping types */ #define CIPSO_V4_MAP_UNKNOWN 0 #define CIPSO_V4_MAP_TRANS 1 #define CIPSO_V4_MAP_PASS 2 #define CIPSO_V4_MAP_LOCAL 3 /* limits */ #define CIPSO_V4_MAX_REM_LVLS 255 #define CIPSO_V4_INV_LVL 0x80000000 #define CIPSO_V4_MAX_LOC_LVLS (CIPSO_V4_INV_LVL - 1) #define CIPSO_V4_MAX_REM_CATS 65534 #define CIPSO_V4_INV_CAT 0x80000000 #define CIPSO_V4_MAX_LOC_CATS (CIPSO_V4_INV_CAT - 1) /* * CIPSO DOI definitions */ /* DOI definition struct */ #define CIPSO_V4_TAG_MAXCNT 5 struct cipso_v4_doi { u32 doi; u32 type; union { struct cipso_v4_std_map_tbl *std; } map; u8 tags[CIPSO_V4_TAG_MAXCNT]; refcount_t refcount; struct list_head list; struct rcu_head rcu; }; /* Standard CIPSO mapping table */ /* NOTE: the highest order bit (i.e. 0x80000000) is an 'invalid' flag, if the * bit is set then consider that value as unspecified, meaning the * mapping for that particular level/category is invalid */ struct cipso_v4_std_map_tbl { struct { u32 *cipso; u32 *local; u32 cipso_size; u32 local_size; } lvl; struct { u32 *cipso; u32 *local; u32 cipso_size; u32 local_size; } cat; }; /* * Sysctl Variables */ #ifdef CONFIG_NETLABEL extern int cipso_v4_cache_enabled; extern int cipso_v4_cache_bucketsize; extern int cipso_v4_rbm_optfmt; extern int cipso_v4_rbm_strictvalid; #endif /* * DOI List Functions */ #ifdef CONFIG_NETLABEL int cipso_v4_doi_add(struct cipso_v4_doi *doi_def, struct netlbl_audit *audit_info); void cipso_v4_doi_free(struct cipso_v4_doi *doi_def); int cipso_v4_doi_remove(u32 doi, struct netlbl_audit *audit_info); struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi); void cipso_v4_doi_putdef(struct cipso_v4_doi *doi_def); int cipso_v4_doi_walk(u32 *skip_cnt, int (*callback) (struct cipso_v4_doi *doi_def, void *arg), void *cb_arg); #else static inline int cipso_v4_doi_add(struct cipso_v4_doi *doi_def, struct netlbl_audit *audit_info) { return -ENOSYS; } static inline void cipso_v4_doi_free(struct cipso_v4_doi *doi_def) { return; } static inline int cipso_v4_doi_remove(u32 doi, struct netlbl_audit *audit_info) { return 0; } static inline struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi) { return NULL; } static inline int cipso_v4_doi_walk(u32 *skip_cnt, int (*callback) (struct cipso_v4_doi *doi_def, void *arg), void *cb_arg) { return 0; } static inline int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def, const char *domain) { return -ENOSYS; } static inline int cipso_v4_doi_domhsh_remove(struct cipso_v4_doi *doi_def, const char *domain) { return 0; } #endif /* CONFIG_NETLABEL */ /* * Label Mapping Cache Functions */ #ifdef CONFIG_NETLABEL void cipso_v4_cache_invalidate(void); int cipso_v4_cache_add(const unsigned char *cipso_ptr, const struct netlbl_lsm_secattr *secattr); #else static inline void cipso_v4_cache_invalidate(void) { return; } static inline int cipso_v4_cache_add(const unsigned char *cipso_ptr, const struct netlbl_lsm_secattr *secattr) { return 0; } #endif /* CONFIG_NETLABEL */ /* * Protocol Handling Functions */ #ifdef CONFIG_NETLABEL void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway); int cipso_v4_getattr(const unsigned char *cipso, struct netlbl_lsm_secattr *secattr); int cipso_v4_sock_setattr(struct sock *sk, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr); void cipso_v4_sock_delattr(struct sock *sk); int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr); int cipso_v4_req_setattr(struct request_sock *req, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr); void cipso_v4_req_delattr(struct request_sock *req); int cipso_v4_skbuff_setattr(struct sk_buff *skb, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr); int cipso_v4_skbuff_delattr(struct sk_buff *skb); int cipso_v4_skbuff_getattr(const struct sk_buff *skb, struct netlbl_lsm_secattr *secattr); unsigned char *cipso_v4_optptr(const struct sk_buff *skb); int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option); #else static inline void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway) { return; } static inline int cipso_v4_getattr(const unsigned char *cipso, struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline int cipso_v4_sock_setattr(struct sock *sk, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline void cipso_v4_sock_delattr(struct sock *sk) { } static inline int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline int cipso_v4_req_setattr(struct request_sock *req, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline void cipso_v4_req_delattr(struct request_sock *req) { return; } static inline int cipso_v4_skbuff_setattr(struct sk_buff *skb, const struct cipso_v4_doi *doi_def, const struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline int cipso_v4_skbuff_delattr(struct sk_buff *skb) { return -ENOSYS; } static inline int cipso_v4_skbuff_getattr(const struct sk_buff *skb, struct netlbl_lsm_secattr *secattr) { return -ENOSYS; } static inline unsigned char *cipso_v4_optptr(const struct sk_buff *skb) { return NULL; } static inline int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option) { unsigned char *opt = *option; unsigned char err_offset = 0; u8 opt_len = opt[1]; u8 opt_iter; u8 tag_len; if (opt_len < 8) { err_offset = 1; goto out; } if (get_unaligned_be32(&opt[2]) == 0) { err_offset = 2; goto out; } for (opt_iter = 6; opt_iter < opt_len;) { if (opt_iter + 1 == opt_len) { err_offset = opt_iter; goto out; } tag_len = opt[opt_iter + 1]; if ((tag_len == 0) || (tag_len > (opt_len - opt_iter))) { err_offset = opt_iter + 1; goto out; } opt_iter += tag_len; } out: *option = opt + err_offset; return err_offset; } #endif /* CONFIG_NETLABEL */ #endif /* _CIPSO_IPV4_H */