Skip to content

Commit f647ae1

Browse files
my4ngtgross35
authored andcommitted
feat: add missing netfilter consts
(backport <#3734>) (cherry picked from commit 7000471)
1 parent 904f3d0 commit f647ae1

File tree

5 files changed

+123
-7
lines changed

5 files changed

+123
-7
lines changed

libc-test/build.rs

+12-2
Original file line numberDiff line numberDiff line change
@@ -1789,6 +1789,8 @@ fn test_android(target: &str) {
17891789
"linux/netfilter/nfnetlink_log.h",
17901790
"linux/netfilter/nfnetlink_queue.h",
17911791
"linux/netfilter/nf_tables.h",
1792+
"linux/netfilter_arp.h",
1793+
"linux/netfilter_bridge.h",
17921794
"linux/netfilter_ipv4.h",
17931795
"linux/netfilter_ipv6.h",
17941796
"linux/netfilter_ipv6/ip6_tables.h",
@@ -3592,6 +3594,8 @@ fn test_linux(target: &str) {
35923594
"linux/netfilter/nfnetlink_log.h",
35933595
"linux/netfilter/nfnetlink_queue.h",
35943596
"linux/netfilter/nf_tables.h",
3597+
"linux/netfilter_arp.h",
3598+
"linux/netfilter_bridge.h",
35953599
"linux/netfilter_ipv4.h",
35963600
"linux/netfilter_ipv6.h",
35973601
"linux/netfilter_ipv6/ip6_tables.h",
@@ -4113,9 +4117,15 @@ fn test_linux(target: &str) {
41134117
| "MINSIGSTKSZ"
41144118
if gnu => true,
41154119

4116-
// FIXME: Linux >= 5.16 changed its value:
4120+
// FIXME: Linux >= 5.10:
4121+
// https://github.com/torvalds/linux/commit/d25e2e9388eda61b6e298585024ee3355f50c493
4122+
"NF_INET_INGRESS" if musl => true,
4123+
4124+
// FIXME: Linux >= 5.16:
41174125
// https://github.com/torvalds/linux/commit/42df6e1d221dddc0f2acf2be37e68d553ad65f96
4118-
"NF_NETDEV_NUMHOOKS" => true,
4126+
"NF_NETDEV_EGRESS" if musl || sparc64 => true,
4127+
// value changed
4128+
"NF_NETDEV_NUMHOOKS" if musl || sparc64 => true,
41194129

41204130
// FIXME: requires Linux >= 5.6:
41214131
| "RESOLVE_BENEATH"

libc-test/semver/android.txt

+24
Original file line numberDiff line numberDiff line change
@@ -1689,8 +1689,29 @@ NFULNL_COPY_PACKET
16891689
NFULNL_MSG_CONFIG
16901690
NFULNL_MSG_PACKET
16911691
NF_ACCEPT
1692+
NF_ARP
1693+
NF_ARP_FORWARD
1694+
NF_ARP_IN
1695+
NF_ARP_NUMHOOKS
1696+
NF_ARP_OUT
1697+
NF_BR_BROUTING
1698+
NF_BR_FORWARD
1699+
NF_BR_LOCAL_IN
1700+
NF_BR_LOCAL_OUT
1701+
NF_BR_NUMHOOKS
1702+
NF_BR_POST_ROUTING
1703+
NF_BR_PRE_ROUTING
1704+
NF_BR_PRI_BRNF
1705+
NF_BR_PRI_FILTER_BRIDGED
1706+
NF_BR_PRI_FILTER_OTHER
1707+
NF_BR_PRI_FIRST
1708+
NF_BR_PRI_LAST
1709+
NF_BR_PRI_NAT_DST_BRIDGED
1710+
NF_BR_PRI_NAT_DST_OTHER
1711+
NF_BR_PRI_NAT_SRC
16921712
NF_DROP
16931713
NF_INET_FORWARD
1714+
NF_INET_INGRESS
16941715
NF_INET_LOCAL_IN
16951716
NF_INET_LOCAL_OUT
16961717
NF_INET_NUMHOOKS
@@ -1712,6 +1733,7 @@ NF_IP6_PRI_MANGLE
17121733
NF_IP6_PRI_NAT_DST
17131734
NF_IP6_PRI_NAT_SRC
17141735
NF_IP6_PRI_RAW
1736+
NF_IP6_PRI_RAW_BEFORE_DEFRAG
17151737
NF_IP6_PRI_SECURITY
17161738
NF_IP6_PRI_SELINUX_FIRST
17171739
NF_IP6_PRI_SELINUX_LAST
@@ -1732,10 +1754,12 @@ NF_IP_PRI_MANGLE
17321754
NF_IP_PRI_NAT_DST
17331755
NF_IP_PRI_NAT_SRC
17341756
NF_IP_PRI_RAW
1757+
NF_IP_PRI_RAW_BEFORE_DEFRAG
17351758
NF_IP_PRI_SECURITY
17361759
NF_IP_PRI_SELINUX_FIRST
17371760
NF_IP_PRI_SELINUX_LAST
17381761
NF_MAX_VERDICT
1762+
NF_NETDEV_EGRESS
17391763
NF_NETDEV_INGRESS
17401764
NF_NETDEV_NUMHOOKS
17411765
NF_QUEUE

libc-test/semver/linux.txt

+24
Original file line numberDiff line numberDiff line change
@@ -1852,8 +1852,29 @@ NFULNL_COPY_PACKET
18521852
NFULNL_MSG_CONFIG
18531853
NFULNL_MSG_PACKET
18541854
NF_ACCEPT
1855+
NF_ARP
1856+
NF_ARP_FORWARD
1857+
NF_ARP_IN
1858+
NF_ARP_NUMHOOKS
1859+
NF_ARP_OUT
1860+
NF_BR_BROUTING
1861+
NF_BR_FORWARD
1862+
NF_BR_LOCAL_IN
1863+
NF_BR_LOCAL_OUT
1864+
NF_BR_NUMHOOKS
1865+
NF_BR_POST_ROUTING
1866+
NF_BR_PRE_ROUTING
1867+
NF_BR_PRI_BRNF
1868+
NF_BR_PRI_FILTER_BRIDGED
1869+
NF_BR_PRI_FILTER_OTHER
1870+
NF_BR_PRI_FIRST
1871+
NF_BR_PRI_LAST
1872+
NF_BR_PRI_NAT_DST_BRIDGED
1873+
NF_BR_PRI_NAT_DST_OTHER
1874+
NF_BR_PRI_NAT_SRC
18551875
NF_DROP
18561876
NF_INET_FORWARD
1877+
NF_INET_INGRESS
18571878
NF_INET_LOCAL_IN
18581879
NF_INET_LOCAL_OUT
18591880
NF_INET_NUMHOOKS
@@ -1875,6 +1896,7 @@ NF_IP6_PRI_MANGLE
18751896
NF_IP6_PRI_NAT_DST
18761897
NF_IP6_PRI_NAT_SRC
18771898
NF_IP6_PRI_RAW
1899+
NF_IP6_PRI_RAW_BEFORE_DEFRAG
18781900
NF_IP6_PRI_SECURITY
18791901
NF_IP6_PRI_SELINUX_FIRST
18801902
NF_IP6_PRI_SELINUX_LAST
@@ -1895,10 +1917,12 @@ NF_IP_PRI_MANGLE
18951917
NF_IP_PRI_NAT_DST
18961918
NF_IP_PRI_NAT_SRC
18971919
NF_IP_PRI_RAW
1920+
NF_IP_PRI_RAW_BEFORE_DEFRAG
18981921
NF_IP_PRI_SECURITY
18991922
NF_IP_PRI_SELINUX_FIRST
19001923
NF_IP_PRI_SELINUX_LAST
19011924
NF_MAX_VERDICT
1925+
NF_NETDEV_EGRESS
19021926
NF_QUEUE
19031927
NF_REPEAT
19041928
NF_STOLEN

src/unix/linux_like/android/mod.rs

+30-1
Original file line numberDiff line numberDiff line change
@@ -2349,9 +2349,11 @@ pub const NF_INET_FORWARD: ::c_int = 2;
23492349
pub const NF_INET_LOCAL_OUT: ::c_int = 3;
23502350
pub const NF_INET_POST_ROUTING: ::c_int = 4;
23512351
pub const NF_INET_NUMHOOKS: ::c_int = 5;
2352+
pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS;
23522353

23532354
pub const NF_NETDEV_INGRESS: ::c_int = 0;
2354-
pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
2355+
pub const NF_NETDEV_EGRESS: ::c_int = 1;
2356+
pub const NF_NETDEV_NUMHOOKS: ::c_int = 2;
23552357

23562358
pub const NFPROTO_UNSPEC: ::c_int = 0;
23572359
pub const NFPROTO_INET: ::c_int = 1;
@@ -2363,6 +2365,31 @@ pub const NFPROTO_IPV6: ::c_int = 10;
23632365
pub const NFPROTO_DECNET: ::c_int = 12;
23642366
pub const NFPROTO_NUMPROTO: ::c_int = 13;
23652367

2368+
// linux/netfilter_arp.h
2369+
pub const NF_ARP: ::c_int = 0;
2370+
pub const NF_ARP_IN: ::c_int = 0;
2371+
pub const NF_ARP_OUT: ::c_int = 1;
2372+
pub const NF_ARP_FORWARD: ::c_int = 2;
2373+
pub const NF_ARP_NUMHOOKS: ::c_int = 3;
2374+
2375+
// linux/netfilter_bridge.h
2376+
pub const NF_BR_PRE_ROUTING: ::c_int = 0;
2377+
pub const NF_BR_LOCAL_IN: ::c_int = 1;
2378+
pub const NF_BR_FORWARD: ::c_int = 2;
2379+
pub const NF_BR_LOCAL_OUT: ::c_int = 3;
2380+
pub const NF_BR_POST_ROUTING: ::c_int = 4;
2381+
pub const NF_BR_BROUTING: ::c_int = 5;
2382+
pub const NF_BR_NUMHOOKS: ::c_int = 6;
2383+
2384+
pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN;
2385+
pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300;
2386+
pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200;
2387+
pub const NF_BR_PRI_BRNF: ::c_int = 0;
2388+
pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100;
2389+
pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200;
2390+
pub const NF_BR_PRI_NAT_SRC: ::c_int = 300;
2391+
pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX;
2392+
23662393
// linux/netfilter_ipv4.h
23672394
pub const NF_IP_PRE_ROUTING: ::c_int = 0;
23682395
pub const NF_IP_LOCAL_IN: ::c_int = 1;
@@ -2372,6 +2399,7 @@ pub const NF_IP_POST_ROUTING: ::c_int = 4;
23722399
pub const NF_IP_NUMHOOKS: ::c_int = 5;
23732400

23742401
pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN;
2402+
pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450;
23752403
pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
23762404
pub const NF_IP_PRI_RAW: ::c_int = -300;
23772405
pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225;
@@ -2395,6 +2423,7 @@ pub const NF_IP6_POST_ROUTING: ::c_int = 4;
23952423
pub const NF_IP6_NUMHOOKS: ::c_int = 5;
23962424

23972425
pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN;
2426+
pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450;
23982427
pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
23992428
pub const NF_IP6_PRI_RAW: ::c_int = -300;
24002429
pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225;

src/unix/linux_like/linux/mod.rs

+33-4
Original file line numberDiff line numberDiff line change
@@ -3336,20 +3336,47 @@ pub const NF_INET_FORWARD: ::c_int = 2;
33363336
pub const NF_INET_LOCAL_OUT: ::c_int = 3;
33373337
pub const NF_INET_POST_ROUTING: ::c_int = 4;
33383338
pub const NF_INET_NUMHOOKS: ::c_int = 5;
3339+
pub const NF_INET_INGRESS: ::c_int = NF_INET_NUMHOOKS;
3340+
3341+
pub const NF_NETDEV_INGRESS: ::c_int = 0;
3342+
pub const NF_NETDEV_EGRESS: ::c_int = 1;
3343+
pub const NF_NETDEV_NUMHOOKS: ::c_int = 2;
33393344

33403345
// Some NFPROTO are not compatible with musl and are defined in submodules.
33413346
pub const NFPROTO_UNSPEC: ::c_int = 0;
3347+
pub const NFPROTO_INET: ::c_int = 1;
33423348
pub const NFPROTO_IPV4: ::c_int = 2;
33433349
pub const NFPROTO_ARP: ::c_int = 3;
3350+
pub const NFPROTO_NETDEV: ::c_int = 5;
33443351
pub const NFPROTO_BRIDGE: ::c_int = 7;
33453352
pub const NFPROTO_IPV6: ::c_int = 10;
33463353
pub const NFPROTO_DECNET: ::c_int = 12;
33473354
pub const NFPROTO_NUMPROTO: ::c_int = 13;
3348-
pub const NFPROTO_INET: ::c_int = 1;
3349-
pub const NFPROTO_NETDEV: ::c_int = 5;
33503355

3351-
pub const NF_NETDEV_INGRESS: ::c_int = 0;
3352-
pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
3356+
// linux/netfilter_arp.h
3357+
pub const NF_ARP: ::c_int = 0;
3358+
pub const NF_ARP_IN: ::c_int = 0;
3359+
pub const NF_ARP_OUT: ::c_int = 1;
3360+
pub const NF_ARP_FORWARD: ::c_int = 2;
3361+
pub const NF_ARP_NUMHOOKS: ::c_int = 3;
3362+
3363+
// linux/netfilter_bridge.h
3364+
pub const NF_BR_PRE_ROUTING: ::c_int = 0;
3365+
pub const NF_BR_LOCAL_IN: ::c_int = 1;
3366+
pub const NF_BR_FORWARD: ::c_int = 2;
3367+
pub const NF_BR_LOCAL_OUT: ::c_int = 3;
3368+
pub const NF_BR_POST_ROUTING: ::c_int = 4;
3369+
pub const NF_BR_BROUTING: ::c_int = 5;
3370+
pub const NF_BR_NUMHOOKS: ::c_int = 6;
3371+
3372+
pub const NF_BR_PRI_FIRST: ::c_int = ::INT_MIN;
3373+
pub const NF_BR_PRI_NAT_DST_BRIDGED: ::c_int = -300;
3374+
pub const NF_BR_PRI_FILTER_BRIDGED: ::c_int = -200;
3375+
pub const NF_BR_PRI_BRNF: ::c_int = 0;
3376+
pub const NF_BR_PRI_NAT_DST_OTHER: ::c_int = 100;
3377+
pub const NF_BR_PRI_FILTER_OTHER: ::c_int = 200;
3378+
pub const NF_BR_PRI_NAT_SRC: ::c_int = 300;
3379+
pub const NF_BR_PRI_LAST: ::c_int = ::INT_MAX;
33533380

33543381
// linux/netfilter_ipv4.h
33553382
pub const NF_IP_PRE_ROUTING: ::c_int = 0;
@@ -3360,6 +3387,7 @@ pub const NF_IP_POST_ROUTING: ::c_int = 4;
33603387
pub const NF_IP_NUMHOOKS: ::c_int = 5;
33613388

33623389
pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN;
3390+
pub const NF_IP_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450;
33633391
pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
33643392
pub const NF_IP_PRI_RAW: ::c_int = -300;
33653393
pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225;
@@ -3383,6 +3411,7 @@ pub const NF_IP6_POST_ROUTING: ::c_int = 4;
33833411
pub const NF_IP6_NUMHOOKS: ::c_int = 5;
33843412

33853413
pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN;
3414+
pub const NF_IP6_PRI_RAW_BEFORE_DEFRAG: ::c_int = -450;
33863415
pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
33873416
pub const NF_IP6_PRI_RAW: ::c_int = -300;
33883417
pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225;

0 commit comments

Comments
 (0)