Skip to content

Commit feacf46

Browse files
committed
Auto merge of #3120 - nathaniel-bennett:master, r=JohnTitor
Additional linux AF_PACKET functionality Added socket options, structs and other miscellaneous constants that make memory-mapped packet sockets possible in Linux (PACKET_TX_RING, PACKET_RX_RING, etc.).
2 parents 89fb7bf + 0ffc639 commit feacf46

File tree

3 files changed

+382
-1
lines changed

3 files changed

+382
-1
lines changed

libc-test/build.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -3131,7 +3131,6 @@ fn test_linux(target: &str) {
31313131
"netinet/ip.h",
31323132
"netinet/tcp.h",
31333133
"netinet/udp.h",
3134-
"netpacket/packet.h",
31353134
"poll.h",
31363135
"pthread.h",
31373136
"pty.h",
@@ -3230,6 +3229,7 @@ fn test_linux(target: &str) {
32303229
"linux/if_addr.h",
32313230
"linux/if_alg.h",
32323231
"linux/if_ether.h",
3232+
"linux/if_packet.h",
32333233
"linux/if_tun.h",
32343234
"linux/input.h",
32353235
"linux/ipv6.h",
@@ -3864,6 +3864,10 @@ fn test_linux(target: &str) {
38643864
(struct_ == "sockaddr_vm" && field == "svm_zero") ||
38653865
// the `ifr_ifru` field is an anonymous union
38663866
(struct_ == "ifreq" && field == "ifr_ifru") ||
3867+
// the `hdr_variant` field is an anonymous union
3868+
(struct_ == "tpacket3_hdr" && field == "hdr_variant") ||
3869+
// the `ts_subsec` field is an anonymous union
3870+
(struct_ == "tpacket_bd_ts" && field == "ts_subsec") ||
38673871
// glibc uses a single array `uregs` instead of individual fields.
38683872
(struct_ == "user_regs" && arm)
38693873
});

libc-test/semver/linux.txt

+63
Original file line numberDiff line numberDiff line change
@@ -1653,11 +1653,40 @@ O_RSYNC
16531653
O_SYNC
16541654
O_TMPFILE
16551655
PACKET_ADD_MEMBERSHIP
1656+
PACKET_AUXDATA
1657+
PACKET_BROADCAST
16561658
PACKET_DROP_MEMBERSHIP
1659+
PACKET_FANOUT
1660+
PACKET_HOST
1661+
PACKET_KERNEL
1662+
PACKET_LOOPBACK
1663+
PACKET_LOSS
16571664
PACKET_MR_ALLMULTI
16581665
PACKET_MR_MULTICAST
16591666
PACKET_MR_PROMISC
16601667
PACKET_MR_UNICAST
1668+
PACKET_MULTICAST
1669+
PACKET_OTHERHOST
1670+
PACKET_OUTGOING
1671+
PACKET_QDISC_BYPASS
1672+
PACKET_RESERVE
1673+
PACKET_RX_RING
1674+
PACKET_STATISTICS
1675+
PACKET_TIMESTAMP
1676+
PACKET_TX_RING
1677+
PACKET_USER
1678+
PACKET_VERSION
1679+
PACKET_FANOUT_CBPF
1680+
PACKET_FANOUT_CPU
1681+
PACKET_FANOUT_EBPF
1682+
PACKET_FANOUT_FLAG_DEFRAG
1683+
PACKET_FANOUT_FLAG_ROLLOVER
1684+
PACKET_FANOUT_FLAG_UNIQUEID
1685+
PACKET_FANOUT_HASH
1686+
PACKET_FANOUT_LB
1687+
PACKET_FANOUT_QM
1688+
PACKET_FANOUT_RND
1689+
PACKET_FANOUT_ROLLOVER
16611690
PENDIN
16621691
PF_ALG
16631692
PF_APPLETALK
@@ -2758,6 +2787,22 @@ TIOCSCTTY
27582787
TIOCSPGRP
27592788
TIOCSSOFTCAR
27602789
TIOCSTI
2790+
TP_STATUS_AVAILABLE
2791+
TP_STATUS_BLK_TMO
2792+
TP_STATUS_COPY
2793+
TP_STATUS_CSUMNOTREADY
2794+
TP_STATUS_CSUM_VALID
2795+
TP_STATUS_KERNEL
2796+
TP_STATUS_LOSING
2797+
TP_STATUS_SENDING
2798+
TP_STATUS_SEND_REQUEST
2799+
TP_STATUS_TS_RAW_HARDWARE
2800+
TP_STATUS_TS_SOFTWARE
2801+
TP_STATUS_TS_SYS_HARDWARE
2802+
TP_STATUS_USER
2803+
TP_STATUS_VLAN_TPID_VALID
2804+
TP_STATUS_VLAN_VALID
2805+
TP_STATUS_WRONG_FORMAT
27612806
TUN_READQ_SIZE
27622807
TUN_TAP_DEV
27632808
TUN_TUN_DEV
@@ -3019,6 +3064,7 @@ fanotify_event_metadata
30193064
fanotify_init
30203065
fanotify_mark
30213066
fanotify_response
3067+
fanout_args
30223068
fchdir
30233069
fdatasync
30243070
fdopendir
@@ -3371,6 +3417,7 @@ sockaddr_alg
33713417
sockaddr_can
33723418
sockaddr_ll
33733419
sockaddr_nl
3420+
sockaddr_pkt
33743421
sockaddr_vm
33753422
splice
33763423
spwd
@@ -3405,6 +3452,22 @@ timer_getoverrun
34053452
timer_gettime
34063453
timer_settime
34073454
tmpfile64
3455+
tpacket2_hdr
3456+
tpacket3_hdr
3457+
tpacket_auxdata
3458+
tpacket_bd_header_u
3459+
tpacket_bd_ts
3460+
tpacket_block_desc
3461+
tpacket_hdr
3462+
tpacket_hdr_v1
3463+
tpacket_hdr_variant1
3464+
tpacket_req
3465+
tpacket_req3
3466+
tpacket_req_u
3467+
tpacket_rollover_stats
3468+
tpacket_stats
3469+
tpacket_stats_v3
3470+
tpacket_versions
34083471
truncate
34093472
truncate64
34103473
ttyname_r

0 commit comments

Comments
 (0)