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