/usr/src/kernels/4.18.0-553.121.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.h94780644editdlrm
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.h119810644editdlrm
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.h72120644editdlrm
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.h731250644editdlrm
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.121.1.el8_10.x86_64/include/net/bond_alb.h (6251B)
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright(c) 1999 - 2004 Intel Corporation. All rights reserved. */ #ifndef _NET_BOND_ALB_H #define _NET_BOND_ALB_H #include struct bonding; struct slave; #define BOND_ALB_INFO(bond) ((bond)->alb_info) #define SLAVE_TLB_INFO(slave) ((slave)->tlb_info) #define ALB_TIMER_TICKS_PER_SEC 10 /* should be a divisor of HZ */ #define BOND_TLB_REBALANCE_INTERVAL 10 /* In seconds, periodic re-balancing. * Used for division - never set * to zero !!! */ #define BOND_ALB_DEFAULT_LP_INTERVAL 1 #define BOND_ALB_LP_INTERVAL(bond) (bond->params.lp_interval) /* In seconds, periodic send of * learning packets to the switch */ #define BOND_TLB_REBALANCE_TICKS (BOND_TLB_REBALANCE_INTERVAL \ * ALB_TIMER_TICKS_PER_SEC) #define BOND_ALB_LP_TICKS(bond) (BOND_ALB_LP_INTERVAL(bond) \ * ALB_TIMER_TICKS_PER_SEC) #define TLB_HASH_TABLE_SIZE 256 /* The size of the clients hash table. * Note that this value MUST NOT be smaller * because the key hash table is BYTE wide ! */ #define TLB_NULL_INDEX 0xffffffff /* rlb defs */ #define RLB_HASH_TABLE_SIZE 256 #define RLB_NULL_INDEX 0xffffffff #define RLB_UPDATE_DELAY (2*ALB_TIMER_TICKS_PER_SEC) /* 2 seconds */ #define RLB_ARP_BURST_SIZE 2 #define RLB_UPDATE_RETRY 3 /* 3-ticks - must be smaller than the rlb * rebalance interval (5 min). */ /* RLB_PROMISC_TIMEOUT = 10 sec equals the time that the current slave is * promiscuous after failover */ #define RLB_PROMISC_TIMEOUT (10*ALB_TIMER_TICKS_PER_SEC) struct tlb_client_info { struct slave *tx_slave; /* A pointer to slave used for transmiting * packets to a Client that the Hash function * gave this entry index. */ u32 tx_bytes; /* Each Client accumulates the BytesTx that * were transmitted to it, and after each * CallBack the LoadHistory is divided * by the balance interval */ u32 load_history; /* This field contains the amount of Bytes * that were transmitted to this client by * the server on the previous balance * interval in Bps. */ u32 next; /* The next Hash table entry index, assigned * to use the same adapter for transmit. */ u32 prev; /* The previous Hash table entry index, * assigned to use the same */ }; /* ------------------------------------------------------------------------- * struct rlb_client_info contains all info related to a specific rx client * connection. This is the Clients Hash Table entry struct. * Note that this is not a proper hash table; if a new client's IP address * hash collides with an existing client entry, the old entry is replaced. * * There is a linked list (linked by the used_next and used_prev members) * linking all the used entries of the hash table. This allows updating * all the clients without walking over all the unused elements of the table. * * There are also linked lists of entries with identical hash(ip_src). These * allow cleaning up the table from ip_src<->mac_src associations that have * become outdated and would cause sending out invalid ARP updates to the * network. These are linked by the (src_next and src_prev members). * ------------------------------------------------------------------------- */ struct rlb_client_info { __be32 ip_src; /* the server IP address */ __be32 ip_dst; /* the client IP address */ u8 mac_src[ETH_ALEN]; /* the server MAC address */ u8 mac_dst[ETH_ALEN]; /* the client MAC address */ /* list of used hash table entries, starting at rx_hashtbl_used_head */ u32 used_next; u32 used_prev; /* ip_src based hashing */ u32 src_next; /* next entry with same hash(ip_src) */ u32 src_prev; /* prev entry with same hash(ip_src) */ u32 src_first; /* first entry with hash(ip_src) == this entry's index */ u8 assigned; /* checking whether this entry is assigned */ u8 ntt; /* flag - need to transmit client info */ struct slave *slave; /* the slave assigned to this client */ unsigned short vlan_id; /* VLAN tag associated with IP address */ }; struct tlb_slave_info { u32 head; /* Index to the head of the bi-directional clients * hash table entries list. The entries in the list * are the entries that were assigned to use this * slave for transmit. */ u32 load; /* Each slave sums the loadHistory of all clients * assigned to it */ }; struct alb_bond_info { struct tlb_client_info *tx_hashtbl; /* Dynamically allocated */ u32 unbalanced_load; atomic_t tx_rebalance_counter; int lp_counter; /* -------- rlb parameters -------- */ int rlb_enabled; struct rlb_client_info *rx_hashtbl; /* Receive hash table */ u32 rx_hashtbl_used_head; u8 rx_ntt; /* flag - need to transmit * to all rx clients */ struct slave *rx_slave;/* last slave to xmit from */ u8 primary_is_promisc; /* boolean */ u32 rlb_promisc_timeout_counter;/* counts primary * promiscuity time */ u32 rlb_update_delay_counter; u32 rlb_update_retry_counter;/* counter of retries * of client update */ u8 rlb_rebalance; /* flag - indicates that the * rx traffic should be * rebalanced */ }; int bond_alb_initialize(struct bonding *bond, int rlb_enabled); void bond_alb_deinitialize(struct bonding *bond); int bond_alb_init_slave(struct bonding *bond, struct slave *slave); void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave); void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link); void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave); netdev_tx_t bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev); netdev_tx_t bond_tlb_xmit(struct sk_buff *skb, struct net_device *bond_dev); struct slave *bond_xmit_alb_slave_get(struct bonding *bond, struct sk_buff *skb); struct slave *bond_xmit_tlb_slave_get(struct bonding *bond, struct sk_buff *skb); void bond_alb_monitor(struct work_struct *); int bond_alb_set_mac_address(struct net_device *bond_dev, void *addr); void bond_alb_clear_vlan(struct bonding *bond, unsigned short vlan_id); #endif /* _NET_BOND_ALB_H */