examples: move them to contrib, since they don't belong here
[netsniff-ng.git] / contrib / examples / bpfc / opcodes / igmp_and_mld.bpf
blobed64cc079bc1eaf82e5e7061c82101a988e80612
1 { 0x28, 0, 0, 0xc         }, / Load Ethernet at 12
2 { 0x15, 0, 5, 0x8100      }, / Check for VLAN
3 { 0x01, 0, 0, 0x12        }, / Load 18 -> X (start IP)
4 { 0x28, 0, 0, 0x10        }, / Load Ethernet at 16
5 { 0x15, 7, 0, 0x800       }, / Check IPv4
6 { 0x28, 0, 0, 0x10        }, / Load Ethernet at 16
7 { 0x15, 9, 0, 0x86dd      }, / Check IPv6
8 { 0x01, 0, 0, 0xe         }, / Load 14 -> X (start IP)
9 { 0x28, 0, 0, 0xc         }, / Load Ethernet at 12
10 { 0x15, 2, 0, 0x800       }, / Check IPv4
11 { 0x28, 0, 0, 0xc         }, / Load Ethernet at 12
12 { 0x15, 5, 84, 0x86dd     }, / Check IPv6
13 { 0x87, 0, 0, 0x0         }, / A <- X
14 { 0x04, 0, 0, 0x9         }, / add 9 -> X (start IPv4 Nxt Hdr)
15 { 0x07, 0, 0, 0x0         }, / A -> X
16 { 0x50, 0, 0, 0x0         }, / Load IPv4 Nxt Header
17 { 0x15, 78, 79, 0x2       }, / Check for IGMP
18 { 0x87, 0, 0, 0x0         }, / A <- X
19 { 0x04, 0, 0, 0x6         }, / add 6 -> X (start IPv6 Nxt Hdr)
20 { 0x07, 0, 0, 0x0         }, / A -> X
21 { 0x50, 0, 0, 0x0         }, / Load IPv6 Nxt Header
22 { 0x02, 0, 0, 0x0         }, / A -> M0
23 { 0x87, 0, 0, 0x0         }, / A <- X
24 { 0x04, 0, 0, 0x22        }, / add 34 -> X (end ipv6 packet)
25 { 0x07, 0, 0, 0x0         }, / A -> X
26 { 0x60, 0, 0, 0x0         }, / A <- M0
27 { 0x15, 0, 7, 0x0         }, / Check for HopbyHop
28 { 0x50, 0, 0, 0x0         }, / Load HopbyHop Nxt Header
29 { 0x02, 0, 0, 0x0         }, / A -> M0
30 { 0x50, 0, 0, 0x1         }, / Load HopbyHop Ext Len
31 { 0x04, 0, 0, 0x1         }, / add 1 to HopbyHop Ext Len
32 { 0x64, 0, 0, 0x3         }, / multiply by 8
33 { 0x0c, 0, 0, 0x0         }, / A + X
34 { 0x07, 0, 0, 0x0         }, / A -> X
35 { 0x60, 0, 0, 0x0         }, / A <- M0
36 { 0x15, 0, 7, 0x3c        }, / Check for Dest Opts
37 { 0x50, 0, 0, 0x0         }, / Load Dest Opts Nxt Header
38 { 0x02, 0, 0, 0x0         }, / A -> M0
39 { 0x50, 0, 0, 0x1         }, / Load Dest Opts Ext Len
40 { 0x04, 0, 0, 0x1         }, / add 1 to Dest Opts Ext Len
41 { 0x64, 0, 0, 0x3         }, / multiply by 8
42 { 0x0c, 0, 0, 0x0         }, / A + X
43 { 0x07, 0, 0, 0x0         }, / A -> X
44 { 0x60, 0, 0, 0x0         }, / A <- M0
45 { 0x15, 0, 7, 0x2b        }, / Check for Routing
46 { 0x50, 0, 0, 0x0         }, / Load Routing Nxt Header
47 { 0x02, 0, 0, 0x0         }, / A -> M0
48 { 0x50, 0, 0, 0x1         }, / Load Routing Ext Len
49 { 0x04, 0, 0, 0x1         }, / add 1 to Routing Ext Len
50 { 0x64, 0, 0, 0x3         }, / multiply by 8
51 { 0x0c, 0, 0, 0x0         }, / A + X
52 { 0x07, 0, 0, 0x0         }, / A -> X
53 { 0x60, 0, 0, 0x0         }, / A <- M0
54 { 0x15, 0, 6, 0x2c        }, / Check for Fragment
55 { 0x50, 0, 0, 0x0         }, / Load Fragment Nxt Header
56 { 0x02, 0, 0, 0x0         }, / A -> M0
57 { 0x00, 0, 0, 0x8         }, / Load 8
58 { 0x0c, 0, 0, 0x0         }, / A + X
59 { 0x07, 0, 0, 0x0         }, / A -> X
60 { 0x60, 0, 0, 0x0         }, / A <- M0
61 { 0x15, 0, 8, 0x33        }, / Check for Authentication
62 { 0x50, 0, 0, 0x0         }, / Load Authentication Nxt Header
63 { 0x02, 0, 0, 0x0         }, / A -> M0
64 { 0x50, 0, 0, 0x1         }, / Load Authentication Ext Len
65 { 0x04, 0, 0, 0x2         }, / add 2 to Authentication Ext Len
66 { 0x64, 0, 0, 0x2         }, / multiply by 4
67 { 0x0c, 0, 0, 0x0         }, / A + X
68 { 0x07, 0, 0, 0x0         }, / A -> X
69 { 0x60, 0, 0, 0x0         }, / A <- M0
70 { 0x15, 26, 0, 0x32       }, / Check for ESP
71 { 0x15, 0, 7, 0x3c        }, / Check for Dest Opts
72 { 0x50, 0, 0, 0x0         }, / Load Dest Opts Nxt Header
73 { 0x02, 0, 0, 0x0         }, / A -> M0
74 { 0x50, 0, 0, 0x1         }, / Load Dest Opts Ext Len
75 { 0x04, 0, 0, 0x1         }, / add 1 to Dest Opts Ext Len
76 { 0x64, 0, 0, 0x3         }, / multiply by 8
77 { 0x0c, 0, 0, 0x0         }, / A + X
78 { 0x07, 0, 0, 0x0         }, / A -> X
79 { 0x60, 0, 0, 0x0         }, / A <- M0
80 { 0x15, 0, 7, 0x87        }, / Check for Mobility
81 { 0x50, 0, 0, 0x0         }, / Load Mobility Nxt Header
82 { 0x02, 0, 0, 0x0         }, / A -> M0
83 { 0x50, 0, 0, 0x1         }, / Load Mobility Ext Len
84 { 0x04, 0, 0, 0x1         }, / add 1 to Mobility Ext Len
85 { 0x64, 0, 0, 0x3         }, / multiply by 8
86 { 0x0c, 0, 0, 0x0         }, / A + X
87 { 0x07, 0, 0, 0x0         }, / A -> X
88 { 0x60, 0, 0, 0x0         }, / A <- M0
89 { 0x15, 7, 0, 0x3b        }, / Check for No Nxt Hdr
90 { 0x15, 0, 6, 0x3a        }, / Check for ICMPv6
91 { 0x50, 0, 0, 0x0         }, / Load ICMPv6 Type
92 { 0x15, 3, 0, 0x82        }, / Check for 130 Multicast Listener Query
93 { 0x15, 2, 0, 0x83        }, / Check for 131 Multicast Listener Report v1
94 { 0x15, 1, 0, 0x84        }, / Check for 132 Multicast Listener Done
95 { 0x15, 0, 1, 0x8f        }, / Check for 143 Multicast Listener Report v2
96 { 0x6, 0, 0, 0xffffffff   }, / return pkt
97 { 0x6, 0, 0, 0x00000000   }, / return nothing