* The below BPF filter is taken from ISC DHCP */
static struct bpf_insn dhcp_bpf_filter [] = {
/* Make sure this is an IP packet... */
- BPF_STMT (BPF_LD | BPF_H | BPF_ABS, 12),
- BPF_JUMP (BPF_JMP | BPF_JEQ | BPF_K, ETHERTYPE_IP, 0, 8),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, 12),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, ETHERTYPE_IP, 0, 8),
/* Make sure it's a UDP packet... */
- BPF_STMT (BPF_LD | BPF_B | BPF_ABS, 23),
- BPF_JUMP (BPF_JMP | BPF_JEQ | BPF_K, IPPROTO_UDP, 0, 6),
+ BPF_STMT (BPF_LD + BPF_B + BPF_ABS, 23),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, IPPROTO_UDP, 0, 6),
/* Make sure this isn't a fragment... */
- BPF_STMT (BPF_LD | BPF_H | BPF_ABS, 20),
- BPF_JUMP (BPF_JMP | BPF_JSET | BPF_K, 0x1fff, 4, 0),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, 20),
+ BPF_JUMP (BPF_JMP + BPF_JSET + BPF_K, 0x1fff, 4, 0),
/* Get the IP header length... */
- BPF_STMT (BPF_LDX | BPF_B | BPF_MSH, 14),
+ BPF_STMT (BPF_LDX + BPF_B + BPF_MSH, 14),
/* Make sure it's to the right port... */
- BPF_STMT (BPF_LD | BPF_H | BPF_IND, 16),
- BPF_JUMP (BPF_JMP | BPF_JEQ | BPF_K, DHCP_CLIENT_PORT, 0, 1),
+ BPF_STMT (BPF_LD + BPF_H + BPF_IND, 16),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, DHCP_CLIENT_PORT, 0, 1),
/* If we passed all the tests, ask for the whole packet. */
- BPF_STMT (BPF_RET | BPF_K, ~0U),
+ BPF_STMT (BPF_RET + BPF_K, ~0U),
/* Otherwise, drop it. */
- BPF_STMT (BPF_RET | BPF_K, 0),
+ BPF_STMT (BPF_RET + BPF_K, 0),
};
static struct bpf_insn arp_bpf_filter [] = {
/* Make sure this is an ARP packet... */
- BPF_STMT (BPF_LD | BPF_H | BPF_ABS, 12),
- BPF_JUMP (BPF_JMP | BPF_JEQ | BPF_K, ETHERTYPE_ARP, 0, 3),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, 12),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, ETHERTYPE_ARP, 0, 3),
/* Make sure this is an ARP REPLY... */
- BPF_STMT (BPF_LD | BPF_H | BPF_ABS, 20),
- BPF_JUMP (BPF_JMP | BPF_JEQ | BPF_K, ARPOP_REPLY, 0, 1),
+ BPF_STMT (BPF_LD + BPF_H + BPF_ABS, 20),
+ BPF_JUMP (BPF_JMP + BPF_JEQ + BPF_K, ARPOP_REPLY, 0, 1),
/* If we passed all the tests, ask for the whole packet. */
- BPF_STMT (BPF_RET | BPF_K, ~0U),
+ BPF_STMT (BPF_RET + BPF_K, ~0U),
/* Otherwise, drop it. */
- BPF_STMT (BPF_RET | BPF_K, 0),
+ BPF_STMT (BPF_RET + BPF_K, 0),
};
void setup_packet_filters (void)