/
usr
/
src
/
linux-headers-5.15.0-181
/
include
/
net
/
/usr/src/linux-headers-5.15.0-181/include/net
mkdir
upload
Name
Size
Mode
Actions
9p/
-
0755
rm
bluetooth/
-
0755
rm
caif/
-
0755
rm
iucv/
-
0755
rm
netfilter/
-
0755
rm
netns/
-
0755
rm
nfc/
-
0755
rm
phonet/
-
0755
rm
sctp/
-
0755
rm
tc_act/
-
0755
rm
6lowpan.h
10270
0644
edit
dl
rm
act_api.h
8647
0644
edit
dl
rm
addrconf.h
14594
0644
edit
dl
rm
af_ieee802154.h
1220
0644
edit
dl
rm
af_rxrpc.h
2798
0644
edit
dl
rm
af_unix.h
3375
0644
edit
dl
rm
af_vsock.h
7592
0644
edit
dl
rm
ah.h
382
0644
edit
dl
rm
arp.h
2141
0644
edit
dl
rm
atmclip.h
1515
0644
edit
dl
rm
ax25.h
15443
0644
edit
dl
rm
ax88796.h
1440
0644
edit
dl
rm
bareudp.h
572
0644
edit
dl
rm
bonding.h
20263
0644
edit
dl
rm
bond_3ad.h
9706
0644
edit
dl
rm
bond_alb.h
6251
0644
edit
dl
rm
bond_options.h
3876
0644
edit
dl
rm
bpf_sk_storage.h
1780
0644
edit
dl
rm
busy_poll.h
3959
0644
edit
dl
rm
calipso.h
1590
0644
edit
dl
rm
cfg80211-wext.h
1854
0644
edit
dl
rm
cfg80211.h
301317
0644
edit
dl
rm
cfg802154.h
10779
0644
edit
dl
rm
checksum.h
4869
0644
edit
dl
rm
cipso_ipv4.h
7548
0644
edit
dl
rm
cls_cgroup.h
2086
0644
edit
dl
rm
codel.h
5782
0644
edit
dl
rm
codel_impl.h
8167
0644
edit
dl
rm
codel_qdisc.h
2973
0644
edit
dl
rm
compat.h
2586
0644
edit
dl
rm
datalink.h
619
0644
edit
dl
rm
dcbevent.h
742
0644
edit
dl
rm
dcbnl.h
4317
0644
edit
dl
rm
devlink.h
63593
0644
edit
dl
rm
dsa.h
36231
0644
edit
dl
rm
dsfield.h
1147
0644
edit
dl
rm
dst.h
15153
0644
edit
dl
rm
dst_cache.h
3031
0644
edit
dl
rm
dst_metadata.h
5521
0644
edit
dl
rm
dst_ops.h
2125
0644
edit
dl
rm
erspan.h
9180
0644
edit
dl
rm
esp.h
1190
0644
edit
dl
rm
espintcp.h
966
0644
edit
dl
rm
ethoc.h
391
0644
edit
dl
rm
failover.h
1178
0644
edit
dl
rm
fib_notifier.h
1384
0644
edit
dl
rm
fib_rules.h
6450
0644
edit
dl
rm
firewire.h
636
0644
edit
dl
rm
flow.h
5119
0644
edit
dl
rm
flow_dissector.h
10517
0644
edit
dl
rm
flow_offload.h
15938
0644
edit
dl
rm
fou.h
549
0644
edit
dl
rm
fq.h
2528
0644
edit
dl
rm
fq_impl.h
8076
0644
edit
dl
rm
garp.h
2678
0644
edit
dl
rm
genetlink.h
13854
0644
edit
dl
rm
geneve.h
1898
0644
edit
dl
rm
gen_stats.h
2889
0644
edit
dl
rm
gre.h
3369
0644
edit
dl
rm
gro.h
783
0644
edit
dl
rm
gro_cells.h
443
0644
edit
dl
rm
gtp.h
633
0644
edit
dl
rm
gue.h
3313
0644
edit
dl
rm
hwbm.h
969
0644
edit
dl
rm
icmp.h
1918
0644
edit
dl
rm
ieee80211_radiotap.h
13518
0644
edit
dl
rm
ieee802154_netdev.h
10095
0644
edit
dl
rm
ife.h
1057
0644
edit
dl
rm
if_inet6.h
6692
0644
edit
dl
rm
ila.h
291
0644
edit
dl
rm
inet6_connection_sock.h
765
0644
edit
dl
rm
inet6_hashtables.h
4259
0644
edit
dl
rm
inetpeer.h
3372
0644
edit
dl
rm
inet_common.h
2614
0644
edit
dl
rm
inet_connection_sock.h
11519
0644
edit
dl
rm
inet_ecn.h
7625
0644
edit
dl
rm
inet_frag.h
5046
0644
edit
dl
rm
inet_hashtables.h
12532
0644
edit
dl
rm
inet_sock.h
9994
0644
edit
dl
rm
inet_timewait_sock.h
3735
0644
edit
dl
rm
ioam6.h
1199
0644
edit
dl
rm
ip.h
22759
0644
edit
dl
rm
ip6_checksum.h
2770
0644
edit
dl
rm
ip6_fib.h
16280
0644
edit
dl
rm
ip6_route.h
10230
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
36182
0644
edit
dl
rm
ipv6_frag.h
3361
0644
edit
dl
rm
ipv6_stubs.h
3482
0644
edit
dl
rm
ip_fib.h
16346
0644
edit
dl
rm
ip_tunnels.h
15949
0644
edit
dl
rm
ip_vs.h
50588
0644
edit
dl
rm
iw_handler.h
21413
0644
edit
dl
rm
kcm.h
4961
0644
edit
dl
rm
l3mdev.h
7202
0644
edit
dl
rm
lag.h
409
0644
edit
dl
rm
lapb.h
4938
0644
edit
dl
rm
lib80211.h
4017
0644
edit
dl
rm
llc.h
4514
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
14697
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
6806
0644
edit
dl
rm
mac80211.h
273972
0644
edit
dl
rm
mac802154.h
15235
0644
edit
dl
rm
macsec.h
7084
0644
edit
dl
rm
mctp.h
6155
0644
edit
dl
rm
mctpdevice.h
841
0644
edit
dl
rm
mip6.h
1016
0644
edit
dl
rm
mld.h
2918
0644
edit
dl
rm
mpls.h
943
0644
edit
dl
rm
mpls_iptunnel.h
429
0644
edit
dl
rm
mptcp.h
6776
0644
edit
dl
rm
mrp.h
3119
0644
edit
dl
rm
ncsi.h
1964
0644
edit
dl
rm
ndisc.h
15150
0644
edit
dl
rm
neighbour.h
16099
0644
edit
dl
rm
netevent.h
1044
0644
edit
dl
rm
netlabel.h
20676
0644
edit
dl
rm
netlink.h
61656
0644
edit
dl
rm
netprio_cgroup.h
1047
0644
edit
dl
rm
netrom.h
7895
0644
edit
dl
rm
net_failover.h
1023
0644
edit
dl
rm
net_namespace.h
12795
0644
edit
dl
rm
net_ratelimit.h
220
0644
edit
dl
rm
nexthop.h
12565
0644
edit
dl
rm
nl802154.h
12384
0644
edit
dl
rm
nsh.h
12602
0644
edit
dl
rm
p8022.h
447
0644
edit
dl
rm
page_pool.h
8646
0644
edit
dl
rm
pie.h
3684
0644
edit
dl
rm
ping.h
2970
0644
edit
dl
rm
pkt_cls.h
24431
0644
edit
dl
rm
pkt_sched.h
6042
0644
edit
dl
rm
pptp.h
557
0644
edit
dl
rm
protocol.h
3900
0644
edit
dl
rm
psample.h
1083
0644
edit
dl
rm
psnap.h
351
0644
edit
dl
rm
raw.h
2136
0644
edit
dl
rm
rawv6.h
854
0644
edit
dl
rm
red.h
11654
0644
edit
dl
rm
regulatory.h
10901
0644
edit
dl
rm
request_sock.h
6660
0644
edit
dl
rm
rose.h
7802
0644
edit
dl
rm
route.h
11582
0644
edit
dl
rm
rpl.h
839
0644
edit
dl
rm
rsi_91x.h
1710
0644
edit
dl
rm
rtnetlink.h
7638
0644
edit
dl
rm
rtnh.h
859
0644
edit
dl
rm
sch_generic.h
34720
0644
edit
dl
rm
scm.h
3877
0644
edit
dl
rm
secure_seq.h
855
0644
edit
dl
rm
seg6.h
2237
0644
edit
dl
rm
seg6_hmac.h
1473
0644
edit
dl
rm
seg6_local.h
644
0644
edit
dl
rm
selftests.h
582
0644
edit
dl
rm
slhc_vj.h
6831
0644
edit
dl
rm
smc.h
2513
0644
edit
dl
rm
snmp.h
5268
0644
edit
dl
rm
sock.h
86351
0644
edit
dl
rm
sock_reuseport.h
1873
0644
edit
dl
rm
Space.h
737
0644
edit
dl
rm
stp.h
383
0644
edit
dl
rm
strparser.h
4250
0644
edit
dl
rm
switchdev.h
14614
0644
edit
dl
rm
tcp.h
75246
0644
edit
dl
rm
tcp_states.h
1225
0644
edit
dl
rm
timewait_sock.h
925
0644
edit
dl
rm
tipc.h
2405
0644
edit
dl
rm
tls.h
21465
0644
edit
dl
rm
tls_toe.h
3006
0644
edit
dl
rm
transp_v6.h
1996
0644
edit
dl
rm
tso.h
566
0644
edit
dl
rm
tun_proto.h
988
0644
edit
dl
rm
udp.h
17035
0644
edit
dl
rm
udplite.h
3762
0644
edit
dl
rm
udp_tunnel.h
12201
0644
edit
dl
rm
vsock_addr.h
662
0644
edit
dl
rm
vxlan.h
14424
0644
edit
dl
rm
wext.h
1510
0644
edit
dl
rm
x25.h
9718
0644
edit
dl
rm
x25device.h
387
0644
edit
dl
rm
xdp.h
8829
0644
edit
dl
rm
xdp_priv.h
446
0644
edit
dl
rm
xdp_sock.h
2094
0644
edit
dl
rm
xdp_sock_drv.h
5607
0644
edit
dl
rm
xfrm.h
56304
0644
edit
dl
rm
xsk_buff_pool.h
5138
0644
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-181/include/net/pkt_sched.h
(6042B)
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __NET_PKT_SCHED_H #define __NET_PKT_SCHED_H #include <linux/jiffies.h> #include <linux/ktime.h> #include <linux/if_vlan.h> #include <linux/netdevice.h> #include <net/sch_generic.h> #include <net/net_namespace.h> #include <uapi/linux/pkt_sched.h> #define DEFAULT_TX_QUEUE_LEN 1000 #define STAB_SIZE_LOG_MAX 30 struct qdisc_walker { int stop; int skip; int count; int (*fn)(struct Qdisc *, unsigned long cl, struct qdisc_walker *); }; static inline void *qdisc_priv(struct Qdisc *q) { return &q->privdata; } static inline struct Qdisc *qdisc_from_priv(void *priv) { return container_of(priv, struct Qdisc, privdata); } /* Timer resolution MUST BE < 10% of min_schedulable_packet_size/bandwidth Normal IP packet size ~ 512byte, hence: 0.5Kbyte/1Mbyte/sec = 0.5msec, so that we need 50usec timer for 10Mbit ethernet. 10msec resolution -> <50Kbit/sec. The result: [34]86 is not good choice for QoS router :-( The things are not so bad, because we may use artificial clock evaluated by integration of network data flow in the most critical places. */ typedef u64 psched_time_t; typedef long psched_tdiff_t; /* Avoid doing 64 bit divide */ #define PSCHED_SHIFT 6 #define PSCHED_TICKS2NS(x) ((s64)(x) << PSCHED_SHIFT) #define PSCHED_NS2TICKS(x) ((x) >> PSCHED_SHIFT) #define PSCHED_TICKS_PER_SEC PSCHED_NS2TICKS(NSEC_PER_SEC) #define PSCHED_PASTPERFECT 0 static inline psched_time_t psched_get_time(void) { return PSCHED_NS2TICKS(ktime_get_ns()); } static inline psched_tdiff_t psched_tdiff_bounded(psched_time_t tv1, psched_time_t tv2, psched_time_t bound) { return min(tv1 - tv2, bound); } struct qdisc_watchdog { u64 last_expires; struct hrtimer timer; struct Qdisc *qdisc; }; void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc, clockid_t clockid); void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); void qdisc_watchdog_schedule_range_ns(struct qdisc_watchdog *wd, u64 expires, u64 delta_ns); static inline void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires) { return qdisc_watchdog_schedule_range_ns(wd, expires, 0ULL); } static inline void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, psched_time_t expires) { qdisc_watchdog_schedule_ns(wd, PSCHED_TICKS2NS(expires)); } void qdisc_watchdog_cancel(struct qdisc_watchdog *wd); extern struct Qdisc_ops pfifo_qdisc_ops; extern struct Qdisc_ops bfifo_qdisc_ops; extern struct Qdisc_ops pfifo_head_drop_qdisc_ops; int fifo_set_limit(struct Qdisc *q, unsigned int limit); struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops, unsigned int limit, struct netlink_ext_ack *extack); int register_qdisc(struct Qdisc_ops *qops); int unregister_qdisc(struct Qdisc_ops *qops); void qdisc_get_default(char *id, size_t len); int qdisc_set_default(const char *id); void qdisc_hash_add(struct Qdisc *q, bool invisible); void qdisc_hash_del(struct Qdisc *q); struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); struct Qdisc *qdisc_lookup_rcu(struct net_device *dev, u32 handle); struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, struct nlattr *tab, struct netlink_ext_ack *extack); void qdisc_put_rtab(struct qdisc_rate_table *tab); void qdisc_put_stab(struct qdisc_size_table *tab); bool sch_direct_xmit(struct sk_buff *skb, struct Qdisc *q, struct net_device *dev, struct netdev_queue *txq, spinlock_t *root_lock, bool validate); void __qdisc_run(struct Qdisc *q); static inline void qdisc_run(struct Qdisc *q) { if (qdisc_run_begin(q)) { __qdisc_run(q); qdisc_run_end(q); } } extern const struct nla_policy rtm_tca_policy[TCA_MAX + 1]; /* Calculate maximal size of packet seen by hard_start_xmit routine of this device. */ static inline unsigned int psched_mtu(const struct net_device *dev) { return READ_ONCE(dev->mtu) + dev->hard_header_len; } static inline struct net *qdisc_net(struct Qdisc *q) { return dev_net(q->dev_queue->dev); } struct tc_cbs_qopt_offload { u8 enable; s32 queue; s32 hicredit; s32 locredit; s32 idleslope; s32 sendslope; }; struct tc_etf_qopt_offload { u8 enable; s32 queue; }; struct tc_taprio_sched_entry { u8 command; /* TC_TAPRIO_CMD_* */ /* The gate_mask in the offloading side refers to traffic classes */ u32 gate_mask; u32 interval; }; struct tc_taprio_qopt_offload { u8 enable; ktime_t base_time; u64 cycle_time; u64 cycle_time_extension; size_t num_entries; struct tc_taprio_sched_entry entries[]; }; /* Reference counting */ struct tc_taprio_qopt_offload *taprio_offload_get(struct tc_taprio_qopt_offload *offload); void taprio_offload_free(struct tc_taprio_qopt_offload *offload); /* Ensure skb_mstamp_ns, which might have been populated with the txtime, is * not mistaken for a software timestamp, because this will otherwise prevent * the dispatch of hardware timestamps to the socket. */ static inline void skb_txtime_consumed(struct sk_buff *skb) { skb->tstamp = ktime_set(0, 0); } struct tc_skb_cb { struct qdisc_skb_cb qdisc_cb; u16 mru; u8 post_ct:1; u8 post_ct_snat:1; u8 post_ct_dnat:1; u16 zone; /* Only valid if post_ct = true */ }; static inline struct tc_skb_cb *tc_skb_cb(const struct sk_buff *skb) { struct tc_skb_cb *cb = (struct tc_skb_cb *)skb->cb; BUILD_BUG_ON(sizeof(*cb) > sizeof_field(struct sk_buff, cb)); return cb; } static inline void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc) { if (!(qdisc->flags & TCQ_F_WARN_NONWC)) { pr_warn("%s: %s qdisc %X: is non-work-conserving?\n", txt, qdisc->ops->id, qdisc->handle >> 16); qdisc->flags |= TCQ_F_WARN_NONWC; } } static inline unsigned int qdisc_peek_len(struct Qdisc *sch) { struct sk_buff *skb; unsigned int len; skb = sch->ops->peek(sch); if (unlikely(skb == NULL)) { qdisc_warn_nonwc("qdisc_peek_len", sch); return 0; } len = qdisc_pkt_len(skb); return len; } #endif
Save
cmd:
run