Skip to content

Commit 7b2c2f4

Browse files
authored
Merge pull request #4356 from devnexen/linux_sockfilter_flags
adding further BPF program flags for Linux.
2 parents 759b68b + 9b8242d commit 7b2c2f4

File tree

4 files changed

+50
-0
lines changed

4 files changed

+50
-0
lines changed

libc-test/semver/linux-aarch64.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ B2500000
22
B3000000
33
B3500000
44
B4000000
5+
BPF_A
56
BPF_ABS
67
BPF_ADD
78
BPF_ALU
89
BPF_B
10+
BPF_CLASS
911
BPF_DIV
1012
BPF_H
1113
BPF_IMM
@@ -25,15 +27,21 @@ BPF_MEM
2527
BPF_MISC
2628
BPF_MISCOP
2729
BPF_MOD
30+
BPF_MODE
2831
BPF_MSH
2932
BPF_NEG
3033
BPF_NET_OFF
34+
BPF_OP
3135
BPF_RET
3236
BPF_RVAL
37+
BPF_SIZE
38+
BPF_SRC
3339
BPF_ST
3440
BPF_STMT
3541
BPF_STX
3642
BPF_SUB
43+
BPF_TAX
44+
BPF_TXA
3745
BPF_W
3846
BPF_X
3947
BPF_XOR

libc-test/semver/linux-loongarch64.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ B2500000
22
B3000000
33
B3500000
44
B4000000
5+
BPF_A
56
BPF_ABS
67
BPF_ADD
78
BPF_ALU
89
BPF_B
10+
BPF_CLASS
911
BPF_DIV
1012
BPF_H
1113
BPF_IMM
@@ -25,15 +27,21 @@ BPF_MEM
2527
BPF_MISC
2628
BPF_MISCOP
2729
BPF_MOD
30+
BPF_MODE
2831
BPF_MSH
2932
BPF_NEG
3033
BPF_NET_OFF
34+
BPF_OP
3135
BPF_RET
3236
BPF_RVAL
37+
BPF_SIZE
38+
BPF_SRC
3339
BPF_ST
3440
BPF_STMT
3541
BPF_STX
3642
BPF_SUB
43+
BPF_TAX
44+
BPF_TXA
3745
BPF_W
3846
BPF_X
3947
BPF_XOR

libc-test/semver/linux-x86_64.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ B2500000
22
B3000000
33
B3500000
44
B4000000
5+
BPF_A
56
BPF_ABS
67
BPF_ADD
78
BPF_ALU
89
BPF_B
10+
BPF_CLASS
911
BPF_DIV
1012
BPF_H
1113
BPF_IMM
@@ -25,15 +27,21 @@ BPF_MEM
2527
BPF_MISC
2628
BPF_MISCOP
2729
BPF_MOD
30+
BPF_MODE
2831
BPF_MSH
2932
BPF_NEG
3033
BPF_NET_OFF
34+
BPF_OP
3135
BPF_RET
3236
BPF_RVAL
37+
BPF_SIZE
38+
BPF_SRC
3339
BPF_ST
3440
BPF_STMT
3541
BPF_STX
3642
BPF_SUB
43+
BPF_TAX
44+
BPF_TXA
3745
BPF_W
3846
BPF_X
3947
BPF_XOR

src/unix/linux_like/linux/mod.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3453,6 +3453,12 @@ pub const BPF_JSET: __u32 = 0x40;
34533453
pub const BPF_K: __u32 = 0x00;
34543454
pub const BPF_X: __u32 = 0x08;
34553455

3456+
// linux/filter.h
3457+
3458+
pub const BPF_A: __u32 = 0x10;
3459+
pub const BPF_TAX: __u32 = 0x00;
3460+
pub const BPF_TXA: __u32 = 0x80;
3461+
34563462
// linux/openat2.h
34573463
pub const RESOLVE_NO_XDEV: crate::__u64 = 0x01;
34583464
pub const RESOLVE_NO_MAGICLINKS: crate::__u64 = 0x02;
@@ -6129,6 +6135,26 @@ f! {
61296135
(x + TPACKET_ALIGNMENT - 1) & !(TPACKET_ALIGNMENT - 1)
61306136
}
61316137

6138+
pub fn BPF_CLASS(code: __u32) -> __u32 {
6139+
code & 0x07
6140+
}
6141+
6142+
pub fn BPF_SIZE(code: __u32) -> __u32 {
6143+
code & 0x18
6144+
}
6145+
6146+
pub fn BPF_MODE(code: __u32) -> __u32 {
6147+
code & 0xe0
6148+
}
6149+
6150+
pub fn BPF_OP(code: __u32) -> __u32 {
6151+
code & 0xf0
6152+
}
6153+
6154+
pub fn BPF_SRC(code: __u32) -> __u32 {
6155+
code & 0x08
6156+
}
6157+
61326158
pub fn BPF_RVAL(code: __u32) -> __u32 {
61336159
code & 0x18
61346160
}

0 commit comments

Comments
 (0)