Skip to content

Commit d0e72e9

Browse files
Add additional Linux AF_PACKET options
1 parent ba73a3e commit d0e72e9

File tree

3 files changed

+322
-1
lines changed

3 files changed

+322
-1
lines changed

Diff for: libc-test/build.rs

+18-1
Original file line numberDiff line numberDiff line change
@@ -3384,7 +3384,6 @@ fn test_linux(target: &str) {
33843384
"netinet/ip.h",
33853385
"netinet/tcp.h",
33863386
"netinet/udp.h",
3387-
"netpacket/packet.h",
33883387
"poll.h",
33893388
"pthread.h",
33903389
"pty.h",
@@ -3486,6 +3485,7 @@ fn test_linux(target: &str) {
34863485
"linux/if_addr.h",
34873486
"linux/if_alg.h",
34883487
"linux/if_ether.h",
3488+
"linux/if_packet.h",
34893489
"linux/if_tun.h",
34903490
"linux/if_xdp.h",
34913491
"linux/input.h",
@@ -3666,6 +3666,23 @@ fn test_linux(target: &str) {
36663666
if (gnu && sparc64) && (ty == "ip_mreqn" || ty == "hwtstamp_config") {
36673667
return true;
36683668
}
3669+
// FIXME: pass by value for structs that are not an even 32/64 bits on
3670+
// big-endian systems corrupts the value for unknown reasons.
3671+
if (sparc64 || ppc || ppc64 || s390x)
3672+
&& (ty == "sockaddr_pkt"
3673+
|| ty == "tpacket_auxdata"
3674+
|| ty == "tpacket_hdr_variant1"
3675+
|| ty == "tpacket_req3"
3676+
|| ty == "tpacket_stats_v3"
3677+
|| ty == "tpacket_req_u")
3678+
{
3679+
return true;
3680+
}
3681+
// FIXME: musl doesn't compile with `struct fanout_args` for unknown reasons.
3682+
if musl && ty == "fanout_args" {
3683+
return true;
3684+
}
3685+
36693686
match ty {
36703687
// These cannot be tested when "resolv.h" is included and are tested
36713688
// in the `linux_elf.rs` file.

Diff for: libc-test/semver/linux.txt

+62
Original file line numberDiff line numberDiff line change
@@ -1801,11 +1801,38 @@ O_RSYNC
18011801
O_SYNC
18021802
O_TMPFILE
18031803
PACKET_ADD_MEMBERSHIP
1804+
PACKET_AUXDATA
1805+
PACKET_BROADCAST
18041806
PACKET_DROP_MEMBERSHIP
1807+
PACKET_FANOUT
1808+
PACKET_FANOUT_CBPF
1809+
PACKET_FANOUT_CPU
1810+
PACKET_FANOUT_FLAG_DEFRAG
1811+
PACKET_FANOUT_FLAG_ROLLOVER
1812+
PACKET_FANOUT_FLAG_UNIQUEID
1813+
PACKET_FANOUT_HASH
1814+
PACKET_FANOUT_LB
1815+
PACKET_FANOUT_QM
1816+
PACKET_FANOUT_RND
1817+
PACKET_FANOUT_ROLLOVER
1818+
PACKET_HOST
1819+
PACKET_KERNEL
1820+
PACKET_LOOPBACK
1821+
PACKET_LOSS
18051822
PACKET_MR_ALLMULTI
18061823
PACKET_MR_MULTICAST
18071824
PACKET_MR_PROMISC
18081825
PACKET_MR_UNICAST
1826+
PACKET_MULTICAST
1827+
PACKET_OTHERHOST
1828+
PACKET_OUTGOING
1829+
PACKET_QDISC_BYPASS
1830+
PACKET_RESERVE
1831+
PACKET_RX_RING
1832+
PACKET_STATISTICS
1833+
PACKET_TIMESTAMP
1834+
PACKET_USER
1835+
PACKET_VERSION
18091836
PENDIN
18101837
PF_ALG
18111838
PF_APPLETALK
@@ -3190,6 +3217,23 @@ TLS_GET_RECORD_TYPE
31903217
TLS_RX
31913218
TLS_SET_RECORD_TYPE
31923219
TLS_TX
3220+
TP_FT_REQ_FILL_RXHASH
3221+
TP_STATUS_AVAILABLE
3222+
TP_STATUS_BLK_TMO
3223+
TP_STATUS_COPY
3224+
TP_STATUS_CSUMNOTREADY
3225+
TP_STATUS_CSUM_VALID
3226+
TP_STATUS_KERNEL
3227+
TP_STATUS_LOSING
3228+
TP_STATUS_SENDING
3229+
TP_STATUS_SEND_REQUEST
3230+
TP_STATUS_TS_RAW_HARDWARE
3231+
TP_STATUS_TS_SOFTWARE
3232+
TP_STATUS_TS_SYS_HARDWARE
3233+
TP_STATUS_USER
3234+
TP_STATUS_VLAN_TPID_VALID
3235+
TP_STATUS_VLAN_VALID
3236+
TP_STATUS_WRONG_FORMAT
31933237
TUN_READQ_SIZE
31943238
TUN_TAP_DEV
31953239
TUN_TUN_DEV
@@ -3452,6 +3496,7 @@ fanotify_event_metadata
34523496
fanotify_init
34533497
fanotify_mark
34543498
fanotify_response
3499+
fanout_args
34553500
fchdir
34563501
fdatasync
34573502
fdopendir
@@ -3819,6 +3864,7 @@ sockaddr_alg
38193864
sockaddr_can
38203865
sockaddr_ll
38213866
sockaddr_nl
3867+
sockaddr_pkt
38223868
sockaddr_vm
38233869
splice
38243870
spwd
@@ -3853,6 +3899,22 @@ timer_getoverrun
38533899
timer_gettime
38543900
timer_settime
38553901
tmpfile64
3902+
tpacket2_hdr
3903+
tpacket3_hdr
3904+
tpacket_auxdata
3905+
tpacket_bd_header_u
3906+
tpacket_bd_ts
3907+
tpacket_block_desc
3908+
tpacket_hdr
3909+
tpacket_hdr_v1
3910+
tpacket_hdr_variant1
3911+
tpacket_req
3912+
tpacket_req3
3913+
tpacket_req_u
3914+
tpacket_rollover_stats
3915+
tpacket_stats
3916+
tpacket_stats_v3
3917+
tpacket_versions
38563918
truncate
38573919
truncate64
38583920
ttyname_r

0 commit comments

Comments
 (0)