1
2
3 """Internet Control Message Protocol for IPv6."""
4
5 import dpkt, ip6
6
7 ICMP6_DST_UNREACH = 1
8 ICMP6_PACKET_TOO_BIG = 2
9 ICMP6_TIME_EXCEEDED = 3
10 ICMP6_PARAM_PROB = 4
11
12 ICMP6_ECHO_REQUEST = 128
13 ICMP6_ECHO_REPLY = 129
14 MLD_LISTENER_QUERY = 130
15 MLD_LISTENER_REPORT = 131
16 MLD_LISTENER_DONE = 132
17
18
19 ICMP6_MEMBERSHIP_QUERY = 130
20 ICMP6_MEMBERSHIP_REPORT = 131
21 ICMP6_MEMBERSHIP_REDUCTION = 132
22
23 ND_ROUTER_SOLICIT = 133
24 ND_ROUTER_ADVERT = 134
25 ND_NEIGHBOR_SOLICIT = 135
26 ND_NEIGHBOR_ADVERT = 136
27 ND_REDIRECT = 137
28
29 ICMP6_ROUTER_RENUMBERING = 138
30
31 ICMP6_WRUREQUEST = 139
32 ICMP6_WRUREPLY = 140
33 ICMP6_FQDN_QUERY = 139
34 ICMP6_FQDN_REPLY = 140
35 ICMP6_NI_QUERY = 139
36 ICMP6_NI_REPLY = 140
37
38 ICMP6_MAXTYPE = 201
39
41 __hdr__ = (
42 ('type', 'B', 0),
43 ('code', 'B', 0),
44 ('sum', 'H', 0)
45 )
46 - class Error(dpkt.Packet):
54 __hdr__ = (('mtu', 'I', 1232), )
59
60 - class Echo(dpkt.Packet):
61 __hdr__ = (('id', 'H', 0), ('seq', 'H', 0))
62
63 _typesw = { 1:Unreach, 2:TooBig, 3:TimeExceed, 4:ParamProb,
64 128:Echo, 129:Echo }
65
73