Skip to content

Commit eb58fcc

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 f536356 + c412376 commit eb58fcc

File tree

3 files changed

+384
-1
lines changed

3 files changed

+384
-1
lines changed

libc-test/build.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -3139,7 +3139,6 @@ fn test_linux(target: &str) {
31393139
"netinet/ip.h",
31403140
"netinet/tcp.h",
31413141
"netinet/udp.h",
3142-
"netpacket/packet.h",
31433142
"poll.h",
31443143
"pthread.h",
31453144
"pty.h",
@@ -3238,6 +3237,7 @@ fn test_linux(target: &str) {
32383237
"linux/if_addr.h",
32393238
"linux/if_alg.h",
32403239
"linux/if_ether.h",
3240+
"linux/if_packet.h",
32413241
"linux/if_tun.h",
32423242
"linux/input.h",
32433243
"linux/ipv6.h",
@@ -3392,6 +3392,8 @@ fn test_linux(target: &str) {
33923392
// FIXME: This is actually a union, not a struct
33933393
"sigval" => true,
33943394

3395+
"fanout_args" if musl => true,
3396+
33953397
// This type is tested in the `linux_termios.rs` file since there
33963398
// are header conflicts when including them with all the other
33973399
// structs.
@@ -3879,6 +3881,10 @@ fn test_linux(target: &str) {
38793881
(struct_ == "sockaddr_vm" && field == "svm_zero") ||
38803882
// the `ifr_ifru` field is an anonymous union
38813883
(struct_ == "ifreq" && field == "ifr_ifru") ||
3884+
// the `hdr_variant` field is an anonymous union
3885+
(struct_ == "tpacket3_hdr" && field == "hdr_variant") ||
3886+
// the `ts_subsec` field is an anonymous union
3887+
(struct_ == "tpacket_bd_ts" && field == "ts_subsec") ||
38823888
// glibc uses a single array `uregs` instead of individual fields.
38833889
(struct_ == "user_regs" && arm)
38843890
});

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)