7 jf 15 #检测是否为 ipv4 报文
(007) ldb [23]
(008) jeq #0x6 jt 9 jf 15 #检测是否为 tcp 报文
(009) ldh [20]
(010) jset...Branch Instruction jmp L
jeq #k, Lt, Lf
jgt #k, Lt, Lf
jge #k, Lt, Lf
jset...9 jf 15
{ 0x28, 0, 0, 0x00000014 }, // (009) ldh [20]
{ 0x45, 4, 0, 0x00001fff }, // (010) jset...由于主要是和过滤报文打交道,内核中(before 3.18)的 BPF 的绝大部分实现都被放在了net/core/filter.c下,篇幅原因笔者就不对代码进行详述了,文件不长,600