netsniff-ng, trafgen: drop privileges if wished
[netsniff-ng.git] / src / examples / bpfc / opcodes / icmpv6.bpf
blob631c21e24ef0083350247364efdde9629c1db4f9
1 { 0x28, 0, 0, 0xc         }, / Load Ethernet at 12
2 { 0x15, 0, 3, 0x8100      }, / Check for VLAN
3 { 0x01, 0, 0, 0x18        }, / Load 24 -> X (start IP Nxt Hdr)
4 { 0x28, 0, 0, 0x10        }, / Load Ethernet at 16
5 { 0x15, 2, 0, 0x86dd      }, / Check IPv6
6 { 0x01, 0, 0, 0x14        }, / Load 20 -> X (start IP Nxt Hdr)
7 { 0x28, 0, 0, 0xc         }, / Load Ethernet at 12
8 { 0x15, 0, 71, 0x86dd     }, / Check IPv6
9 { 0x50, 0, 0, 0x0         }, / Load IPv6 Nxt Header
10 { 0x02, 0, 0, 0x0         }, / A -> M0
11 { 0x87, 0, 0, 0x0         }, / A <- X
12 { 0x04, 0, 0, 0x22        }, / add 34 -> X (end ipv6 packet)
13 { 0x07, 0, 0, 0x0         }, / A -> X
14 { 0x60, 0, 0, 0x0         }, / A <- M0
15 { 0x15, 0, 7, 0x0         }, / Check for HopbyHop
16 { 0x50, 0, 0, 0x0         }, / Load HopbyHop Nxt Header
17 { 0x02, 0, 0, 0x0         }, / A -> M0
18 { 0x50, 0, 0, 0x1         }, / Load HopbyHop Ext Len
19 { 0x04, 0, 0, 0x1         }, / add 1 to HopbyHop Ext Len
20 { 0x64, 0, 0, 0x3         }, / multiply by 8
21 { 0x0c, 0, 0, 0x0         }, / A + X
22 { 0x07, 0, 0, 0x0         }, / A -> X
23 { 0x60, 0, 0, 0x0         }, / A <- M0
24 { 0x15, 0, 7, 0x3c        }, / Check for Dest Opts
25 { 0x50, 0, 0, 0x0         }, / Load Dest Opts Nxt Header
26 { 0x02, 0, 0, 0x0         }, / A -> M0
27 { 0x50, 0, 0, 0x1         }, / Load Dest Opts Ext Len
28 { 0x04, 0, 0, 0x1         }, / add 1 to Dest Opts Ext Len
29 { 0x64, 0, 0, 0x3         }, / multiply by 8
30 { 0x0c, 0, 0, 0x0         }, / A + X
31 { 0x07, 0, 0, 0x0         }, / A -> X
32 { 0x60, 0, 0, 0x0         }, / A <- M0
33 { 0x15, 0, 7, 0x2b        }, / Check for Routing
34 { 0x50, 0, 0, 0x0         }, / Load Routing Nxt Header
35 { 0x02, 0, 0, 0x0         }, / A -> M0
36 { 0x50, 0, 0, 0x1         }, / Load Routing Ext Len
37 { 0x04, 0, 0, 0x1         }, / add 1 to Routing Ext Len
38 { 0x64, 0, 0, 0x3         }, / multiply by 8
39 { 0x0c, 0, 0, 0x0         }, / A + X
40 { 0x07, 0, 0, 0x0         }, / A -> X
41 { 0x60, 0, 0, 0x0         }, / A <- M0
42 { 0x15, 0, 6, 0x2c        }, / Check for Fragment
43 { 0x50, 0, 0, 0x0         }, / Load Fragment Nxt Header
44 { 0x02, 0, 0, 0x0         }, / A -> M0
45 { 0x00, 0, 0, 0x8         }, / Load 8
46 { 0x0c, 0, 0, 0x0         }, / A + X
47 { 0x07, 0, 0, 0x0         }, / A -> X
48 { 0x60, 0, 0, 0x0         }, / A <- M0
49 { 0x15, 0, 8, 0x33        }, / Check for Authentication
50 { 0x50, 0, 0, 0x0         }, / Load Authentication Nxt Header
51 { 0x02, 0, 0, 0x0         }, / A -> M0
52 { 0x50, 0, 0, 0x1         }, / Load Authentication Ext Len
53 { 0x04, 0, 0, 0x2         }, / add 2 to Authentication Ext Len
54 { 0x64, 0, 0, 0x2         }, / multiply by 4
55 { 0x0c, 0, 0, 0x0         }, / A + X
56 { 0x07, 0, 0, 0x0         }, / A -> X
57 { 0x60, 0, 0, 0x0         }, / A <- M0
58 { 0x15, 21, 0, 0x32       }, / Check for ESP
59 { 0x15, 0, 7, 0x3c        }, / Check for Dest Opts
60 { 0x50, 0, 0, 0x0         }, / Load Dest Opts Nxt Header
61 { 0x02, 0, 0, 0x0         }, / A -> M0
62 { 0x50, 0, 0, 0x1         }, / Load Dest Opts Ext Len
63 { 0x04, 0, 0, 0x1         }, / add 1 to Dest Opts Ext Len
64 { 0x64, 0, 0, 0x3         }, / multiply by 8
65 { 0x0c, 0, 0, 0x0         }, / A + X
66 { 0x07, 0, 0, 0x0         }, / A -> X
67 { 0x60, 0, 0, 0x0         }, / A <- M0
68 { 0x15, 0, 7, 0x87        }, / Check for Mobility
69 { 0x50, 0, 0, 0x0         }, / Load Mobility Nxt Header
70 { 0x02, 0, 0, 0x0         }, / A -> M0
71 { 0x50, 0, 0, 0x1         }, / Load Mobility Ext Len
72 { 0x04, 0, 0, 0x1         }, / add 1 to Mobility Ext Len
73 { 0x64, 0, 0, 0x3         }, / multiply by 8
74 { 0x0c, 0, 0, 0x0         }, / A + X
75 { 0x07, 0, 0, 0x0         }, / A -> X
76 { 0x60, 0, 0, 0x0         }, / A <- M0
77 { 0x15, 2, 0, 0x3b        }, / Check for No Nxt Hdr
78 { 0x15, 0, 1, 0x3a        }, / Check for ICMPv6
79 { 0x6, 0, 0, 0xffffffff   }, / return pkt
80 { 0x6, 0, 0, 0x00000000   }, / return nothing