Skip to content

Commit b0e9731

Browse files
Added additional linux AF_PACKET functionality
1 parent 35ad929 commit b0e9731

File tree

3 files changed

+367
-1
lines changed

3 files changed

+367
-1
lines changed

libc-test/build.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -3124,7 +3124,6 @@ fn test_linux(target: &str) {
31243124
"netinet/ip.h",
31253125
"netinet/tcp.h",
31263126
"netinet/udp.h",
3127-
"netpacket/packet.h",
31283127
"poll.h",
31293128
"pthread.h",
31303129
"pty.h",
@@ -3223,6 +3222,7 @@ fn test_linux(target: &str) {
32233222
"linux/if_addr.h",
32243223
"linux/if_alg.h",
32253224
"linux/if_ether.h",
3225+
"linux/if_packet.h",
32263226
"linux/if_tun.h",
32273227
"linux/input.h",
32283228
"linux/ipv6.h",
@@ -3855,6 +3855,10 @@ fn test_linux(target: &str) {
38553855
(struct_ == "sockaddr_vm" && field == "svm_zero") ||
38563856
// the `ifr_ifru` field is an anonymous union
38573857
(struct_ == "ifreq" && field == "ifr_ifru") ||
3858+
// the `hdr_variant` field is an anonymous union
3859+
(struct_ == "tpacket3_hdr" && field == "hdr_variant") ||
3860+
// the `ts_subsec` field is an anonymous union
3861+
(struct_ == "tpacket_bd_ts" && field == "ts_subsec") ||
38583862
// glibc uses a single array `uregs` instead of individual fields.
38593863
(struct_ == "user_regs" && arm)
38603864
});

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
@@ -3404,6 +3451,22 @@ timer_getoverrun
34043451
timer_gettime
34053452
timer_settime
34063453
tmpfile64
3454+
tpacket2_hdr
3455+
tpacket3_hdr
3456+
tpacket_auxdata
3457+
tpacket_bd_header_u
3458+
tpacket_bd_ts
3459+
tpacket_block_desc
3460+
tpacket_hdr
3461+
tpacket_hdr_v1
3462+
tpacket_hdr_variant1
3463+
tpacket_req
3464+
tpacket_req3
3465+
tpacket_req_u
3466+
tpacket_rollover_stats
3467+
tpacket_stats
3468+
tpacket_stats_v3
3469+
tpacket_versions
34073470
truncate
34083471
truncate64
34093472
ttyname_r

0 commit comments

Comments
 (0)