aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/socket_netlink_route_sched_retired.txt
blob: e3b7e9d09ec7b9edda3da57978d8a4227a9be281 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Copyright 2024 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

# This file contains definitions that can no longer be generated from latest Linux revisions.
meta noextract

# TODO: remove the filters that were removed from the kernel
# once they are removed from relevant LTS kernels:
#
# 265b4da82dbf5 net/sched: Retire rsvp classifier
# 8c710f75256bb net/sched: Retire tcindex classifier
# bbe77c14ee618 net/sched: Retire dsmark qdisc
# fb38306ceb9e7 net/sched: Retire ATM qdisc
# 051d442098421 net/sched: Retire CBQ qdisc
# ba24ea1291263 net/sched: Retire ipt action

sendmsg$nl_route_sched_retired(fd sock_nl_route, msg ptr[in, msghdr_netlink[netlink_msg_route_sched_retired]], f flags[send_flags])

netlink_msg_route_sched_retired [
	newqdisc	netlink_msg[RTM_NEWQDISC, tcmsg[AF_UNSPEC], rtm_tca_policy_retired]
	delqdisc	netlink_msg[RTM_DELQDISC, tcmsg[AF_UNSPEC], rtm_tca_policy_retired]
	newtfilter	netlink_msg[RTM_NEWTFILTER, tcmsg[AF_UNSPEC], filter_policy_retired]
	deltfilter	netlink_msg[RTM_DELTFILTER, tcmsg[AF_UNSPEC], filter_policy_retired]
	newchain	netlink_msg[RTM_NEWCHAIN, tcmsg[AF_UNSPEC], filter_policy_retired]
	delchain	netlink_msg[RTM_DELCHAIN, tcmsg[AF_UNSPEC], filter_policy_retired]
	newtaction	netlink_msg[RTM_NEWACTION, tcamsg[AF_UNSPEC], nlattr[TCA_ACT_TAB, array[tca_actions_retired]]]
	newtclass	netlink_msg[RTM_NEWTCLASS, tcmsg[AF_UNSPEC], rtm_tca_policy$tclass_retired]
	deltclass	netlink_msg[RTM_DELTCLASS, tcmsg[AF_UNSPEC], rtm_tca_policy$tclass_retired]
] [varlen]

rtm_tca_policy$tclass_retired [
	c_atm		tca_kind_options_t["atm", array[atm_policy]]
	c_cbq		tca_kind_options_t["cbq", array[cbq_policy]]
	c_dsmark	tca_kind_options_t["dsmark", dsmark_policy$class]
] [varlen]

filter_policy_retired [
	f_rsvp		tca_kind_options_t["rsvp", array[rsvp_policy]]
	f_rsvp6		tca_kind_options_t["rsvp6", array[rsvp_policy$ipv6]]
	f_tcindex	tca_kind_options_t["tcindex", array[tcindex_policy]]
] [varlen]

tca_actions_retired [
	m_ipt	nlattr_tca_actions[tcf_action_policy["ipt", ipt_policy]]
] [varlen]

rtm_tca_policy_retired [
	q_dsmark	tca_kind_options_t["dsmark", array[dsmark_policy]]
] [varlen]

## atm

atm_policy [
	TCA_ATM_FD	nlattr[TCA_ATM_FD, sock]
	TCA_ATM_HDR	nlattr[TCA_ATM_HDR, array[int8, 0:64]]
	TCA_ATM_EXCESS	nlattr[TCA_ATM_EXCESS, tcm_handle]
] [varlen]

## CBQ

cbq_policy [
	TCA_CBQ_LSSOPT	nlattr[TCA_CBQ_LSSOPT, tc_cbq_lssopt]
	TCA_CBQ_WRROPT	nlattr[TCA_CBQ_WRROPT, tc_cbq_wrropt]
	TCA_CBQ_FOPT	nlattr[TCA_CBQ_FOPT, tc_cbq_fopt]
	TCA_CBQ_RATE	nlattr[TCA_CBQ_RATE, tc_ratespec]
	TCA_CBQ_RTAB	nlattr[TCA_CBQ_RTAB, array[int32, 256]]
] [varlen]

tc_cbq_lssopt {
	change		int8[0:64]
	flags		int8[0:3]
	ewma_log	int8[0:32]
	level		int8
	maxidle		int32
	minidle		int32
	offtime		int32
	avpkt		int32
}

tc_cbq_wrropt {
	flags		int8
	priority	int8[0:TC_CBQ_MAXPRIO]
	cpriority	int8
	__reserved	int8
	allot		int32
	weight		int32
}

tc_cbq_fopt {
	split		tcm_handle
	defmap		int32
	defchange	int32
}

## dsmark

dsmark_policy$class [
	TCA_DSMARK_MASK		nlattr[TCA_DSMARK_MASK, int8]
	TCA_DSMARK_VALUE	nlattr[TCA_DSMARK_VALUE, int8]
] [varlen]

dsmark_policy [
	TCA_DSMARK_INDICES		nlattr[TCA_DSMARK_INDICES, flags[tca_dsmark_ind, int16]]
	TCA_DSMARK_DEFAULT_INDEX	nlattr[TCA_DSMARK_DEFAULT_INDEX, int16]
	TCA_DSMARK_SET_TC_INDEX		nlattr[TCA_DSMARK_SET_TC_INDEX, void]
] [varlen]

## rsvp

rsvp_policy [
	TCA_RSVP_CLASSID	nlattr[TCA_RSVP_CLASSID, tcm_handle]
	TCA_RSVP_DST		nlattr[TCA_RSVP_DST, ipv4_addr]
	TCA_RSVP_SRC		nlattr[TCA_RSVP_SRC, ipv4_addr]
	TCA_RSVP_PINFO		nlattr[TCA_RSVP_PINFO, tc_rsvp_pinfo]
	TCA_RSVP_POLICE		nlattr[TCA_RSVP_POLICE, array[police_policy]]
	TCA_RSVP_ACT		nlattr[TCA_RSVP_ACT, array[tca_actions]]
] [varlen]

rsvp_policy$ipv6 [
	TCA_RSVP_CLASSID	nlattr[TCA_RSVP_CLASSID, tcm_handle]
	TCA_RSVP_DST		nlattr[TCA_RSVP_DST, ipv6_addr]
	TCA_RSVP_SRC		nlattr[TCA_RSVP_SRC, ipv6_addr]
	TCA_RSVP_PINFO		nlattr[TCA_RSVP_PINFO, tc_rsvp_pinfo]
	TCA_RSVP_POLICE		nlattr[TCA_RSVP_POLICE, array[police_policy]]
	TCA_RSVP_ACT		nlattr[TCA_RSVP_ACT, array[tca_actions]]
] [varlen]

## tcindex

tcindex_policy [
	TCA_TCINDEX_HASH		nlattr[TCA_TCINDEX_HASH, int32[0:0x10000]]
	TCA_TCINDEX_MASK		nlattr[TCA_TCINDEX_MASK, int16]
	TCA_TCINDEX_SHIFT		nlattr[TCA_TCINDEX_SHIFT, int32]
	TCA_TCINDEX_FALL_THROUGH	nlattr[TCA_TCINDEX_FALL_THROUGH, int32[0:1]]
	TCA_TCINDEX_CLASSID		nlattr[TCA_TCINDEX_CLASSID, tcm_handle]
	TCA_TCINDEX_POLICE		nlattr[TCA_TCINDEX_POLICE, array[police_policy]]
	TCA_TCINDEX_ACT			nlattr[TCA_TCINDEX_ACT, array[tca_actions]]
] [varlen]

## ipt

ipt_policy [
	TCA_IPT_TABLE	nlattr[TCA_IPT_TABLE, string[ipt_tables, XT_TABLE_MAXNAMELEN]]
	TCA_IPT_HOOK	nlattr[TCA_IPT_HOOK, flags[nf_inet_hooks, int32]]
	TCA_IPT_INDEX	nlattr[TCA_IPT_INDEX, int32]
	TCA_IPT_TARG	nlattr[TCA_IPT_TARG, xt_entry_target]
] [varlen]