+ vlan_eth_linuxext_nullary => {
+ skip => is_not_linux(),
+ DLT => 'EN10MB',
+ linuxext => 1,
+ expr => 'vlan',
+ opt => <<~'EOF',
+ (000) ldb [vlanp]
+ (001) jeq #0x1 jt 6 jf 2
+ (002) ldh [12]
+ (003) jeq #0x8100 jt 6 jf 4
+ (004) jeq #0x88a8 jt 6 jf 5
+ (005) jeq #0x9100 jt 6 jf 7
+ (006) ret #262144
+ (007) ret #0
+ EOF
+ }, # vlan_eth_linuxext_nullary
+ vlan_eth_linuxext_unary => {
+ skip => is_not_linux(),
+ DLT => 'EN10MB',
+ linuxext => 1,
+ expr => 'vlan 10',
+ opt => <<~'EOF',
+ (000) ldb [vlanp]
+ (001) jeq #0x1 jt 6 jf 2
+ (002) ldh [12]
+ (003) jeq #0x8100 jt 6 jf 4
+ (004) jeq #0x88a8 jt 6 jf 5
+ (005) jeq #0x9100 jt 6 jf 14
+ (006) ldb [vlanp]
+ (007) jeq #0x1 jt 8 jf 10
+ (008) ldh [vlan_tci]
+ (009) ja 11
+ (010) ldh [14]
+ (011) and #0xfff
+ (012) jeq #0xa jt 13 jf 14
+ (013) ret #262144
+ (014) ret #0
+ EOF
+ }, # vlan_eth_linuxext_unary
+ vlan_and_vlan_eth_linuxext => {
+ skip => is_not_linux(),
+ DLT => 'EN10MB',
+ linuxext => 1,
+ expr => 'vlan and vlan',
+ opt => <<~'EOF',
+ (000) ld #0x0
+ (001) st M[1]
+ (002) ldb [vlanp]
+ (003) jeq #0x1 jt 10 jf 4
+ (004) ld #0x4
+ (005) st M[1]
+ (006) ldh [12]
+ (007) jeq #0x8100 jt 10 jf 8
+ (008) jeq #0x88a8 jt 10 jf 9
+ (009) jeq #0x9100 jt 10 jf 16
+ (010) ldx M[1]
+ (011) ldh [x + 12]
+ (012) jeq #0x8100 jt 15 jf 13
+ (013) jeq #0x88a8 jt 15 jf 14
+ (014) jeq #0x9100 jt 15 jf 16
+ (015) ret #262144
+ (016) ret #0
+ EOF
+ }, # vlan_and_vlan_eth_linuxext