scapy.layers.inet6 module

IPv6 (Internet Protocol v6).

class scapy.layers.inet6.AS_resolver6(server=None, port=43, options=None)

Bases: scapy.as_resolvers.AS_resolver_riswhois

class scapy.layers.inet6.DomainNameListField(name, default, fld=None, length_from=None, padded=False)

Bases: scapy.fields.StrLenField

i2len(pkt, x)

Convert internal value to a length usable by a FieldLenField

i2m(pkt, x)

Convert internal value to machine value

islist = 1
m2i(pkt, x)

Convert machine value to internal value

padded
padded_unit = 8
class scapy.layers.inet6.HAO

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.HAO'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (HAO).otype>, <Field (HAO).optlen>, <Field (HAO).hoa>]
class scapy.layers.inet6.HBHOptUnknown

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.HBHOptUnknown'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)

As specified in section 4.2 of RFC 2460, every options has an alignment requirement usually expressed xn+y, meaning the Option Type must appear at an integer multiple of x octest from the start of the header, plus y octet.

That function is provided the current position from the start of the header and returns required padding length.

classmethod dispatch_hook(_pkt=None, *args, **kargs)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (HBHOptUnknown).otype>, <Field (HBHOptUnknown).optlen>, <Field (HBHOptUnknown).optdata>]
class scapy.layers.inet6.ICMPv6DestUnreach

Bases: scapy.layers.inet6._ICMPv6Error

aliastypes = [<class 'scapy.layers.inet6.ICMPv6DestUnreach'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6DestUnreach).type>, <Field (ICMPv6DestUnreach).code>, <Field (ICMPv6DestUnreach).cksum>, <Field (ICMPv6DestUnreach).length>, <Field (ICMPv6DestUnreach).unused>]
post_dissection(pkt)
class scapy.layers.inet6.ICMPv6EchoReply

Bases: scapy.layers.inet6.ICMPv6EchoRequest

aliastypes = [<class 'scapy.layers.inet6.ICMPv6EchoReply'>, <class 'scapy.layers.inet6.ICMPv6EchoRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (ICMPv6EchoRequest,ICMPv6EchoReply).type>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).code>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).cksum>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).id>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).seq>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).data>]
class scapy.layers.inet6.ICMPv6EchoRequest

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6EchoRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6EchoRequest).type>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).code>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).cksum>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).id>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).seq>, <Field (ICMPv6EchoRequest,ICMPv6EchoReply).data>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6HAADReply

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6HAADReply'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (ICMPv6HAADReply).type>, <Field (ICMPv6HAADReply).code>, <Field (ICMPv6HAADReply).cksum>, <Field (ICMPv6HAADReply).id>, <Field (ICMPv6HAADReply).R>, <Field (ICMPv6HAADReply).res>, <Field (ICMPv6HAADReply).addresses>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.ICMPv6HAADRequest

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6HAADRequest'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6HAADRequest).type>, <Field (ICMPv6HAADRequest).code>, <Field (ICMPv6HAADRequest).cksum>, <Field (ICMPv6HAADRequest).id>, <Field (ICMPv6HAADRequest).R>, <Field (ICMPv6HAADRequest).res>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.ICMPv6MLDMultAddrRec

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLDMultAddrRec'>, <class 'scapy.packet.Packet'>]
default_payload_class(packet)

Multicast Address Record followed by another one

fields_desc = [<Field (ICMPv6MLDMultAddrRec).rtype>, <Field (ICMPv6MLDMultAddrRec).auxdata_len>, <Field (ICMPv6MLDMultAddrRec).sources_number>, <Field (ICMPv6MLDMultAddrRec).dst>, <Field (ICMPv6MLDMultAddrRec).sources>, <Field (ICMPv6MLDMultAddrRec).auxdata>]
class scapy.layers.inet6.ICMPv6MLDone

Bases: scapy.layers.inet6._ICMPv6ML

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLDone'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (_ICMPv6ML,ICMPv6MLDone).type>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <Field (_ICMPv6ML,ICMPv6MLReport,ICMPv6MLDone).mrd>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <Field (_ICMPv6ML,ICMPv6MLReport,ICMPv6MLDone).mladdr>]
class scapy.layers.inet6.ICMPv6MLQuery

Bases: scapy.layers.inet6._ICMPv6ML

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLQuery'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (_ICMPv6ML,ICMPv6MLQuery).type>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <Field (_ICMPv6ML,ICMPv6MLQuery).mrd>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <Field (_ICMPv6ML,ICMPv6MLQuery).mladdr>]
class scapy.layers.inet6.ICMPv6MLQuery2

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLQuery2'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6MLQuery2).type>, <Field (ICMPv6MLQuery2).code>, <Field (ICMPv6MLQuery2).cksum>, <Field (ICMPv6MLQuery2).mrd>, <Field (ICMPv6MLQuery2).reserved>, <Field (ICMPv6MLQuery2).mladdr>, <Field (ICMPv6MLQuery2).Resv>, <Field (ICMPv6MLQuery2).S>, <Field (ICMPv6MLQuery2).QRV>, <Field (ICMPv6MLQuery2).QQIC>, <Field (ICMPv6MLQuery2).sources_number>, <Field (ICMPv6MLQuery2).sources>]
post_build(packet, payload)

Compute the ‘sources_number’ field when needed

class scapy.layers.inet6.ICMPv6MLReport

Bases: scapy.layers.inet6._ICMPv6ML

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLReport'>, <class 'scapy.layers.inet6._ICMPv6ML'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(query)

Check the query type

fields_desc = [<Field (_ICMPv6ML,ICMPv6MLReport).type>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).code>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).cksum>, <Field (_ICMPv6ML,ICMPv6MLReport,ICMPv6MLDone).mrd>, <Field (_ICMPv6ML,ICMPv6MLQuery,ICMPv6MLReport,ICMPv6MLDone).reserved>, <Field (_ICMPv6ML,ICMPv6MLReport,ICMPv6MLDone).mladdr>]
class scapy.layers.inet6.ICMPv6MLReport2

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MLReport2'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(query)

Check the query type

fields_desc = [<Field (ICMPv6MLReport2).type>, <Field (ICMPv6MLReport2).res>, <Field (ICMPv6MLReport2).cksum>, <Field (ICMPv6MLReport2).reserved>, <Field (ICMPv6MLReport2).records_number>, <Field (ICMPv6MLReport2).records>]
post_build(packet, payload)

Compute the ‘records_number’ field when needed

class scapy.layers.inet6.ICMPv6MPAdv

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MPAdv'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (ICMPv6MPAdv).type>, <Field (ICMPv6MPAdv).code>, <Field (ICMPv6MPAdv).cksum>, <Field (ICMPv6MPAdv).id>, <Field (ICMPv6MPAdv).flags>, <Field (ICMPv6MPAdv).res>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.ICMPv6MPSol

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MPSol'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6MPSol).type>, <Field (ICMPv6MPSol).code>, <Field (ICMPv6MPSol).cksum>, <Field (ICMPv6MPSol).id>, <Field (ICMPv6MPSol).res>]
class scapy.layers.inet6.ICMPv6MRD_Advertisement

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Advertisement'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
extract_padding(s)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (ICMPv6MRD_Advertisement).type>, <Field (ICMPv6MRD_Advertisement).advinter>, <Field (ICMPv6MRD_Advertisement).cksum>, <Field (ICMPv6MRD_Advertisement).queryint>, <Field (ICMPv6MRD_Advertisement).robustness>]
class scapy.layers.inet6.ICMPv6MRD_Solicitation

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Solicitation'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
extract_padding(s)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (ICMPv6MRD_Solicitation).type>, <Field (ICMPv6MRD_Solicitation).res>, <Field (ICMPv6MRD_Solicitation).cksum>]
class scapy.layers.inet6.ICMPv6MRD_Termination

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6MRD_Termination'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
extract_padding(s)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (ICMPv6MRD_Termination).type>, <Field (ICMPv6MRD_Termination).res>, <Field (ICMPv6MRD_Termination).cksum>]
class scapy.layers.inet6.ICMPv6NDOptAdvInterval

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptAdvInterval'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptAdvInterval).type>, <Field (ICMPv6NDOptAdvInterval).len>, <Field (ICMPv6NDOptAdvInterval).res>, <Field (ICMPv6NDOptAdvInterval).advint>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptDNSSL

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptDNSSL'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptDNSSL).type>, <Field (ICMPv6NDOptDNSSL).len>, <Field (ICMPv6NDOptDNSSL).res>, <Field (ICMPv6NDOptDNSSL).lifetime>, <Field (ICMPv6NDOptDNSSL).searchlist>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptDstLLAddr

Bases: scapy.layers.inet6.ICMPv6NDOptSrcLLAddr

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptDstLLAddr'>, <class 'scapy.layers.inet6.ICMPv6NDOptSrcLLAddr'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptSrcLLAddr,ICMPv6NDOptDstLLAddr).type>, <Field (ICMPv6NDOptSrcLLAddr,ICMPv6NDOptDstLLAddr).len>, <Field (ICMPv6NDOptSrcLLAddr,ICMPv6NDOptDstLLAddr).lladdr>]
class scapy.layers.inet6.ICMPv6NDOptEFA

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptEFA'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptEFA).type>, <Field (ICMPv6NDOptEFA).len>, <Field (ICMPv6NDOptEFA).res>]
class scapy.layers.inet6.ICMPv6NDOptHAInfo

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptHAInfo'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptHAInfo).type>, <Field (ICMPv6NDOptHAInfo).len>, <Field (ICMPv6NDOptHAInfo).res>, <Field (ICMPv6NDOptHAInfo).pref>, <Field (ICMPv6NDOptHAInfo).lifetime>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptIPAddr

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptIPAddr'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptIPAddr).type>, <Field (ICMPv6NDOptIPAddr).len>, <Field (ICMPv6NDOptIPAddr).optcode>, <Field (ICMPv6NDOptIPAddr).plen>, <Field (ICMPv6NDOptIPAddr).res>, <Field (ICMPv6NDOptIPAddr).addr>]
class scapy.layers.inet6.ICMPv6NDOptLLA

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptLLA'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptLLA).type>, <Field (ICMPv6NDOptLLA).len>, <Field (ICMPv6NDOptLLA).optcode>, <Field (ICMPv6NDOptLLA).lla>]
class scapy.layers.inet6.ICMPv6NDOptMAP

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptMAP'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptMAP).type>, <Field (ICMPv6NDOptMAP).len>, <Field (ICMPv6NDOptMAP).dist>, <Field (ICMPv6NDOptMAP).pref>, <Field (ICMPv6NDOptMAP).R>, <Field (ICMPv6NDOptMAP).res>, <Field (ICMPv6NDOptMAP).validlifetime>, <Field (ICMPv6NDOptMAP).addr>]
class scapy.layers.inet6.ICMPv6NDOptMTU

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptMTU'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptMTU).type>, <Field (ICMPv6NDOptMTU).len>, <Field (ICMPv6NDOptMTU).res>, <Field (ICMPv6NDOptMTU).mtu>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptNewRtrPrefix

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptNewRtrPrefix'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptNewRtrPrefix).type>, <Field (ICMPv6NDOptNewRtrPrefix).len>, <Field (ICMPv6NDOptNewRtrPrefix).optcode>, <Field (ICMPv6NDOptNewRtrPrefix).plen>, <Field (ICMPv6NDOptNewRtrPrefix).res>, <Field (ICMPv6NDOptNewRtrPrefix).prefix>]
class scapy.layers.inet6.ICMPv6NDOptPrefixInfo

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptPrefixInfo'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptPrefixInfo).type>, <Field (ICMPv6NDOptPrefixInfo).len>, <Field (ICMPv6NDOptPrefixInfo).prefixlen>, <Field (ICMPv6NDOptPrefixInfo).L>, <Field (ICMPv6NDOptPrefixInfo).A>, <Field (ICMPv6NDOptPrefixInfo).R>, <Field (ICMPv6NDOptPrefixInfo).res1>, <Field (ICMPv6NDOptPrefixInfo).validlifetime>, <Field (ICMPv6NDOptPrefixInfo).preferredlifetime>, <Field (ICMPv6NDOptPrefixInfo).res2>, <Field (ICMPv6NDOptPrefixInfo).prefix>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptRDNSS

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRDNSS'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptRDNSS).type>, <Field (ICMPv6NDOptRDNSS).len>, <Field (ICMPv6NDOptRDNSS).res>, <Field (ICMPv6NDOptRDNSS).lifetime>, <Field (ICMPv6NDOptRDNSS).dns>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptRedirectedHdr

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRedirectedHdr'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptRedirectedHdr).type>, <Field (ICMPv6NDOptRedirectedHdr).len>, <Field (ICMPv6NDOptRedirectedHdr).res>, <Field (ICMPv6NDOptRedirectedHdr).pkt>]
class scapy.layers.inet6.ICMPv6NDOptRouteInfo

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptRouteInfo'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptRouteInfo).type>, <Field (ICMPv6NDOptRouteInfo).len>, <Field (ICMPv6NDOptRouteInfo).plen>, <Field (ICMPv6NDOptRouteInfo).res1>, <Field (ICMPv6NDOptRouteInfo).prf>, <Field (ICMPv6NDOptRouteInfo).res2>, <Field (ICMPv6NDOptRouteInfo).rtlifetime>, <Field (ICMPv6NDOptRouteInfo).prefix>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptShortcutLimit

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptShortcutLimit'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptShortcutLimit).type>, <Field (ICMPv6NDOptShortcutLimit).len>, <Field (ICMPv6NDOptShortcutLimit).shortcutlim>, <Field (ICMPv6NDOptShortcutLimit).res1>, <Field (ICMPv6NDOptShortcutLimit).res2>]
class scapy.layers.inet6.ICMPv6NDOptSrcAddrList

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptSrcAddrList'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptSrcAddrList).type>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).len>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).res>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).addrlist>]
class scapy.layers.inet6.ICMPv6NDOptSrcLLAddr

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptSrcLLAddr'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptSrcLLAddr).type>, <Field (ICMPv6NDOptSrcLLAddr,ICMPv6NDOptDstLLAddr).len>, <Field (ICMPv6NDOptSrcLLAddr,ICMPv6NDOptDstLLAddr).lladdr>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6NDOptTgtAddrList

Bases: scapy.layers.inet6.ICMPv6NDOptSrcAddrList

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptTgtAddrList'>, <class 'scapy.layers.inet6.ICMPv6NDOptSrcAddrList'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).type>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).len>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).res>, <Field (ICMPv6NDOptSrcAddrList,ICMPv6NDOptTgtAddrList).addrlist>]
class scapy.layers.inet6.ICMPv6NDOptUnknown

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NDOptUnknown'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NDOptUnknown).type>, <Field (ICMPv6NDOptUnknown).len>, <Field (ICMPv6NDOptUnknown).data>]
class scapy.layers.inet6.ICMPv6ND_INDAdv

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_INDAdv'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ND_INDAdv).type>, <Field (ICMPv6ND_INDAdv).code>, <Field (ICMPv6ND_INDAdv).cksum>, <Field (ICMPv6ND_INDAdv).reserved>]
class scapy.layers.inet6.ICMPv6ND_INDSol

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_INDSol'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ND_INDSol).type>, <Field (ICMPv6ND_INDSol).code>, <Field (ICMPv6ND_INDSol).cksum>, <Field (ICMPv6ND_INDSol).reserved>]
class scapy.layers.inet6.ICMPv6ND_NA

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_NA'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (ICMPv6ND_NA).type>, <Field (ICMPv6ND_NA).code>, <Field (ICMPv6ND_NA).cksum>, <Field (ICMPv6ND_NA).R>, <Field (ICMPv6ND_NA).S>, <Field (ICMPv6ND_NA).O>, <Field (ICMPv6ND_NA).res>, <Field (ICMPv6ND_NA).tgt>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6ND_NS

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_NS'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ND_NS).type>, <Field (ICMPv6ND_NS).code>, <Field (ICMPv6ND_NS).cksum>, <Field (ICMPv6ND_NS).res>, <Field (ICMPv6ND_NS).tgt>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6ND_RA

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_RA'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (ICMPv6ND_RA).type>, <Field (ICMPv6ND_RA).code>, <Field (ICMPv6ND_RA).cksum>, <Field (ICMPv6ND_RA).chlim>, <Field (ICMPv6ND_RA).M>, <Field (ICMPv6ND_RA).O>, <Field (ICMPv6ND_RA).H>, <Field (ICMPv6ND_RA).prf>, <Field (ICMPv6ND_RA).P>, <Field (ICMPv6ND_RA).res>, <Field (ICMPv6ND_RA).routerlifetime>, <Field (ICMPv6ND_RA).reachabletime>, <Field (ICMPv6ND_RA).retranstimer>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

class scapy.layers.inet6.ICMPv6ND_RS

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_RS'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ND_RS).type>, <Field (ICMPv6ND_RS).code>, <Field (ICMPv6ND_RS).cksum>, <Field (ICMPv6ND_RS).res>]
class scapy.layers.inet6.ICMPv6ND_Redirect

Bases: scapy.layers.inet6._ICMPv6NDGuessPayload, scapy.layers.inet6._ICMPv6, scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ND_Redirect'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ND_Redirect).type>, <Field (ICMPv6ND_Redirect).code>, <Field (ICMPv6ND_Redirect).cksum>, <Field (ICMPv6ND_Redirect).res>, <Field (ICMPv6ND_Redirect).tgt>, <Field (ICMPv6ND_Redirect).dst>]
class scapy.layers.inet6.ICMPv6NIQueryIPv4

Bases: scapy.layers.inet6.ICMPv6NIQueryNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryIPv4'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryIPv4).qtype>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv4).flags>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
class scapy.layers.inet6.ICMPv6NIQueryIPv6

Bases: scapy.layers.inet6.ICMPv6NIQueryNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryIPv6'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryIPv6).qtype>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6).flags>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
class scapy.layers.inet6.ICMPv6NIQueryNOOP

Bases: scapy.layers.inet6._ICMPv6NIHashret, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <Field (ICMPv6NIQueryNOOP).qtype>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv4).flags>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
class scapy.layers.inet6.ICMPv6NIQueryName

Bases: scapy.layers.inet6.ICMPv6NIQueryNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIQueryName'>, <class 'scapy.layers.inet6.ICMPv6NIQueryNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).type>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).code>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).cksum>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName).qtype>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).unused>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv4).flags>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).nonce>, <Field (ICMPv6NIQueryNOOP,ICMPv6NIQueryName,ICMPv6NIQueryIPv6,ICMPv6NIQueryIPv4).data>]
class scapy.layers.inet6.ICMPv6NIReplyIPv4

Bases: scapy.layers.inet6.ICMPv6NIReplyNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyIPv4'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyIPv4).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6NIReplyIPv6

Bases: scapy.layers.inet6.ICMPv6NIReplyNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyIPv6'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyIPv6).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6NIReplyNOOP

Bases: scapy.layers.inet6._ICMPv6NIAnswers, scapy.layers.inet6._ICMPv6NIHashret, scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6NIReplyName

Bases: scapy.layers.inet6.ICMPv6NIReplyNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyName'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6NIReplyRefuse

Bases: scapy.layers.inet6.ICMPv6NIReplyNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyRefuse'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6NIReplyUnknown

Bases: scapy.layers.inet6.ICMPv6NIReplyNOOP

aliastypes = [<class 'scapy.layers.inet6.ICMPv6NIReplyUnknown'>, <class 'scapy.layers.inet6.ICMPv6NIReplyNOOP'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).type>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyUnknown).code>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).cksum>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).qtype>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).unused>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).flags>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).nonce>, <Field (ICMPv6NIReplyNOOP,ICMPv6NIReplyName,ICMPv6NIReplyIPv6,ICMPv6NIReplyIPv4,ICMPv6NIReplyRefuse,ICMPv6NIReplyUnknown).data>]
class scapy.layers.inet6.ICMPv6PacketTooBig

Bases: scapy.layers.inet6._ICMPv6Error

aliastypes = [<class 'scapy.layers.inet6.ICMPv6PacketTooBig'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6PacketTooBig).type>, <Field (ICMPv6PacketTooBig).code>, <Field (ICMPv6PacketTooBig).cksum>, <Field (ICMPv6PacketTooBig).mtu>]
class scapy.layers.inet6.ICMPv6ParamProblem

Bases: scapy.layers.inet6._ICMPv6Error

aliastypes = [<class 'scapy.layers.inet6.ICMPv6ParamProblem'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6ParamProblem).type>, <Field (ICMPv6ParamProblem).code>, <Field (ICMPv6ParamProblem).cksum>, <Field (ICMPv6ParamProblem).ptr>]
class scapy.layers.inet6.ICMPv6TimeExceeded

Bases: scapy.layers.inet6._ICMPv6Error

aliastypes = [<class 'scapy.layers.inet6.ICMPv6TimeExceeded'>, <class 'scapy.layers.inet6._ICMPv6Error'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6TimeExceeded).type>, <Field (ICMPv6TimeExceeded).code>, <Field (ICMPv6TimeExceeded).cksum>, <Field (ICMPv6TimeExceeded).length>, <Field (ICMPv6TimeExceeded).unused>]
post_dissection(pkt)
class scapy.layers.inet6.ICMPv6Unknown

Bases: scapy.layers.inet6._ICMPv6

aliastypes = [<class 'scapy.layers.inet6.ICMPv6Unknown'>, <class 'scapy.layers.inet6._ICMPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (ICMPv6Unknown).type>, <Field (ICMPv6Unknown).code>, <Field (ICMPv6Unknown).cksum>, <Field (ICMPv6Unknown).msgbody>]
class scapy.layers.inet6.IP6ListField(name, default, count_from=None, length_from=None)

Bases: scapy.fields.StrField

count_from
getfield(pkt, s)

Extract an internal value from a string

Extract from the raw packet s the field value belonging to layer pkt.

Returns a two-element list, first the raw packet string after having removed the extracted field, second the extracted field itself in internal representation.

i2count(pkt, i)

Convert internal value to a number of elements usable by a FieldLenField. Always 1 except for list fields

i2len(pkt, i)

Convert internal value to a length usable by a FieldLenField

i2m(pkt, x)

Convert internal value to machine value

i2repr(pkt, x)

Convert internal value to a nice representation

islist = 1
length_from
class scapy.layers.inet6.IPerror6

Bases: scapy.layers.inet6.IPv6

aliastypes = [<class 'scapy.layers.inet6.IPerror6'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (IPv6,IPerror6).version>, <Field (IPv6,IPerror6).tc>, <Field (IPv6,IPerror6).fl>, <Field (IPv6,IPerror6).plen>, <Field (IPv6,IPerror6).nh>, <Field (IPv6,IPerror6).hlim>, <Field (IPv6,IPerror6).src>, <Field (IPv6,IPerror6).dst>]
mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

payload_guess = [({'nh': 6}, <class 'scapy.layers.inet.TCPerror'>), ({'nh': 17}, <class 'scapy.layers.inet.UDPerror'>)]
class scapy.layers.inet6.IPv6

Bases: scapy.layers.inet6._IPv6GuessPayload, scapy.packet.Packet, scapy.layers.inet.IPTools

aliastypes = [<class 'scapy.layers.inet6.IPv6'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

extract_padding(data)

Extract the IPv6 payload

fields_desc = [<Field (IPv6,IPerror6).version>, <Field (IPv6,IPerror6).tc>, <Field (IPv6,IPerror6).fl>, <Field (IPv6,IPerror6).plen>, <Field (IPv6,IPerror6).nh>, <Field (IPv6,IPerror6).hlim>, <Field (IPv6,IPerror6).src>, <Field (IPv6,IPerror6).dst>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

mysummary()

DEV: can be overloaded to return a string that summarizes the layer. Only one mysummary() is used in a whole packet summary: the one of the upper layer, # noqa: E501 except if a mysummary() also returns (as a couple) a list of layers whose # noqa: E501 mysummary() must be called if they are present.

payload_guess = [({'nh': 6}, <class 'scapy.layers.inet.TCP'>), ({'nh': 17}, <class 'scapy.layers.inet.UDP'>), ({'nh': 41}, <class 'scapy.layers.inet6.IPv6'>), ({'nh': 4}, <class 'scapy.layers.inet.IP'>), ({'nh': 47}, <class 'scapy.layers.l2.GRE'>), ({'nh': 112}, <class 'scapy.layers.vrrp.VRRPv3'>), ({'nh': 132}, <class 'scapy.layers.sctp.SCTP'>), ({'nh': 88}, <class 'scapy.contrib.eigrp.EIGRP'>), ({'nh': 137}, <class 'scapy.contrib.mpls.MPLS'>), ({'nh': 51}, <class 'scapy.layers.ipsec.AH'>), ({'nh': 50}, <class 'scapy.layers.ipsec.ESP'>), ({'nh': 89}, <class 'scapy.contrib.ospf.OSPFv3_Hdr'>)]
post_build(p, pay)

DEV: called right after the current layer is build.

Parameters:
  • pkt (str) – the current packet (build by self_buil function)
  • pay (str) – the packet payload (build by do_build_payload function)
Returns:

a string of the packet with the payload

route()

Used to select the L2 address

class scapy.layers.inet6.IPv6ExtHdrDestOpt

Bases: scapy.layers.inet6._IPv6ExtHdr

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrDestOpt'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.layers.inet6.IPerror6'>]
fields_desc = [<Field (IPv6ExtHdrDestOpt).nh>, <Field (IPv6ExtHdrDestOpt).len>, <Field (IPv6ExtHdrDestOpt).autopad>, <Field (IPv6ExtHdrDestOpt).options>]
class scapy.layers.inet6.IPv6ExtHdrFragment

Bases: scapy.layers.inet6._IPv6ExtHdr

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrFragment'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.layers.inet6.IPerror6'>]
fields_desc = [<Field (IPv6ExtHdrFragment).nh>, <Field (IPv6ExtHdrFragment).res1>, <Field (IPv6ExtHdrFragment).offset>, <Field (IPv6ExtHdrFragment).res2>, <Field (IPv6ExtHdrFragment).m>, <Field (IPv6ExtHdrFragment).id>]
class scapy.layers.inet6.IPv6ExtHdrHopByHop

Bases: scapy.layers.inet6._IPv6ExtHdr

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrHopByHop'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.layers.inet6.IPerror6'>]
fields_desc = [<Field (IPv6ExtHdrHopByHop).nh>, <Field (IPv6ExtHdrHopByHop).len>, <Field (IPv6ExtHdrHopByHop).autopad>, <Field (IPv6ExtHdrHopByHop).options>]
class scapy.layers.inet6.IPv6ExtHdrRouting

Bases: scapy.layers.inet6._IPv6ExtHdr

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrRouting'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.layers.inet6.IPerror6'>]
fields_desc = [<Field (IPv6ExtHdrRouting).nh>, <Field (IPv6ExtHdrRouting).len>, <Field (IPv6ExtHdrRouting).type>, <Field (IPv6ExtHdrRouting).segleft>, <Field (IPv6ExtHdrRouting).reserved>, <Field (IPv6ExtHdrRouting).addresses>]
post_build(pkt, pay)

DEV: called right after the current layer is build.

Parameters:
  • pkt (str) – the current packet (build by self_buil function)
  • pay (str) – the packet payload (build by do_build_payload function)
Returns:

a string of the packet with the payload

class scapy.layers.inet6.IPv6ExtHdrSegmentRouting

Bases: scapy.layers.inet6._IPv6ExtHdr

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRouting'>, <class 'scapy.layers.inet6._IPv6ExtHdr'>, <class 'scapy.layers.inet6.IPv6'>, <class 'scapy.layers.inet6.IPerror6'>]
fields_desc = [<Field (IPv6ExtHdrSegmentRouting).nh>, <Field (IPv6ExtHdrSegmentRouting).len>, <Field (IPv6ExtHdrSegmentRouting).type>, <Field (IPv6ExtHdrSegmentRouting).segleft>, <Field (IPv6ExtHdrSegmentRouting).lastentry>, <Field (IPv6ExtHdrSegmentRouting).unused1>, <Field (IPv6ExtHdrSegmentRouting).protected>, <Field (IPv6ExtHdrSegmentRouting).oam>, <Field (IPv6ExtHdrSegmentRouting).alert>, <Field (IPv6ExtHdrSegmentRouting).hmac>, <Field (IPv6ExtHdrSegmentRouting).unused2>, <Field (IPv6ExtHdrSegmentRouting).tag>, <Field (IPv6ExtHdrSegmentRouting).addresses>, <Field (IPv6ExtHdrSegmentRouting).tlv_objects>]
post_build(pkt, pay)

DEV: called right after the current layer is build.

Parameters:
  • pkt (str) – the current packet (build by self_buil function)
  • pay (str) – the packet payload (build by do_build_payload function)
Returns:

a string of the packet with the payload

class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
classmethod dispatch_hook(pkt=None, *args, **kargs)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (IPv6ExtHdrSegmentRoutingTLV).type>, <Field (IPv6ExtHdrSegmentRoutingTLV).len>, <Field (IPv6ExtHdrSegmentRoutingTLV).reserved>, <Field (IPv6ExtHdrSegmentRoutingTLV).flags>, <Field (IPv6ExtHdrSegmentRoutingTLV).value>]
classmethod register_variant()
registered_sr_tlv = {0: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, 1: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode'>, 2: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode'>, 4: <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadding'>}
class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode

Bases: scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVEgressNode'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).type>, <Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).len>, <Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).reserved>, <Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).flags>, <Field (IPv6ExtHdrSegmentRoutingTLVEgressNode).egress_node>]
class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode

Bases: scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVIngressNode'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).type>, <Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).len>, <Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).reserved>, <Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).flags>, <Field (IPv6ExtHdrSegmentRoutingTLVIngressNode).ingress_node>]
class scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadding

Bases: scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV

aliastypes = [<class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLVPadding'>, <class 'scapy.layers.inet6.IPv6ExtHdrSegmentRoutingTLV'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (IPv6ExtHdrSegmentRoutingTLVPadding).type>, <Field (IPv6ExtHdrSegmentRoutingTLVPadding).len>, <Field (IPv6ExtHdrSegmentRoutingTLVPadding).padding>]
scapy.layers.inet6.IPv6inIP(dst='203.178.135.36', src=None)
class scapy.layers.inet6.Jumbo

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.Jumbo'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (Jumbo).otype>, <Field (Jumbo).optlen>, <Field (Jumbo).jumboplen>]
class scapy.layers.inet6.L3RawSocket6(type=34525, filter=None, iface=None, promisc=None, nofilter=0)

Bases: scapy.supersocket.L3RawSocket

class scapy.layers.inet6.LifetimeField(name, default)

Bases: scapy.fields.ShortField

i2repr(pkt, x)

Convert internal value to a nice representation

class scapy.layers.inet6.MIP6MH_BA

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BA'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (MIP6MH_BA).nh>, <Field (MIP6MH_BA).len>, <Field (MIP6MH_BA).mhtype>, <Field (MIP6MH_BA).res>, <Field (MIP6MH_BA).cksum>, <Field (MIP6MH_BA).status>, <Field (MIP6MH_BA).flags>, <Field (MIP6MH_BA).res2>, <Field (MIP6MH_BA).seq>, <Field (MIP6MH_BA).mhtime>, <Field (MIP6MH_BA).autopad>, <Field (MIP6MH_BA).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_BE

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BE'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6MH_BE).nh>, <Field (MIP6MH_BE).len>, <Field (MIP6MH_BE).mhtype>, <Field (MIP6MH_BE).res>, <Field (MIP6MH_BE).cksum>, <Field (MIP6MH_BE).status>, <Field (MIP6MH_BE).reserved>, <Field (MIP6MH_BE).ha>, <Field (MIP6MH_BE).options>]
class scapy.layers.inet6.MIP6MH_BRR

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BRR'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6MH_BRR).nh>, <Field (MIP6MH_BRR).len>, <Field (MIP6MH_BRR).mhtype>, <Field (MIP6MH_BRR).res>, <Field (MIP6MH_BRR).cksum>, <Field (MIP6MH_BRR).res2>, <Field (MIP6MH_BRR).autopad>, <Field (MIP6MH_BRR).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_BU

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_BU'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (MIP6MH_BU).nh>, <Field (MIP6MH_BU).len>, <Field (MIP6MH_BU).mhtype>, <Field (MIP6MH_BU).res>, <Field (MIP6MH_BU).cksum>, <Field (MIP6MH_BU).seq>, <Field (MIP6MH_BU).flags>, <Field (MIP6MH_BU).reserved>, <Field (MIP6MH_BU).mhtime>, <Field (MIP6MH_BU).autopad>, <Field (MIP6MH_BU).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_CoT

Bases: scapy.layers.inet6.MIP6MH_HoT

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_CoT'>, <class 'scapy.layers.inet6.MIP6MH_HoT'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (MIP6MH_HoT,MIP6MH_CoT).nh>, <Field (MIP6MH_HoT,MIP6MH_CoT).len>, <Field (MIP6MH_HoT,MIP6MH_CoT).mhtype>, <Field (MIP6MH_HoT,MIP6MH_CoT).res>, <Field (MIP6MH_HoT,MIP6MH_CoT).cksum>, <Field (MIP6MH_HoT,MIP6MH_CoT).index>, <Field (MIP6MH_HoT,MIP6MH_CoT).cookie>, <Field (MIP6MH_HoT,MIP6MH_CoT).token>, <Field (MIP6MH_HoT,MIP6MH_CoT).autopad>, <Field (MIP6MH_HoT,MIP6MH_CoT).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_CoTI

Bases: scapy.layers.inet6.MIP6MH_HoTI

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_CoTI'>, <class 'scapy.layers.inet6.MIP6MH_HoTI'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6MH_HoTI,MIP6MH_CoTI).nh>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).len>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).mhtype>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).res>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).cksum>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).reserved>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).cookie>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).autopad>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_Generic

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_Generic'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6MH_Generic).nh>, <Field (MIP6MH_Generic).len>, <Field (MIP6MH_Generic).mhtype>, <Field (MIP6MH_Generic).res>, <Field (MIP6MH_Generic).cksum>, <Field (MIP6MH_Generic).msg>]
class scapy.layers.inet6.MIP6MH_HoT

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_HoT'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
answers(other)

DEV: true if self is an answer from other

fields_desc = [<Field (MIP6MH_HoT,MIP6MH_CoT).nh>, <Field (MIP6MH_HoT,MIP6MH_CoT).len>, <Field (MIP6MH_HoT).mhtype>, <Field (MIP6MH_HoT,MIP6MH_CoT).res>, <Field (MIP6MH_HoT,MIP6MH_CoT).cksum>, <Field (MIP6MH_HoT,MIP6MH_CoT).index>, <Field (MIP6MH_HoT,MIP6MH_CoT).cookie>, <Field (MIP6MH_HoT,MIP6MH_CoT).token>, <Field (MIP6MH_HoT,MIP6MH_CoT).autopad>, <Field (MIP6MH_HoT,MIP6MH_CoT).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6MH_HoTI

Bases: scapy.layers.inet6._MobilityHeader

aliastypes = [<class 'scapy.layers.inet6.MIP6MH_HoTI'>, <class 'scapy.layers.inet6._MobilityHeader'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6MH_HoTI,MIP6MH_CoTI).nh>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).len>, <Field (MIP6MH_HoTI).mhtype>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).res>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).cksum>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).reserved>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).cookie>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).autopad>, <Field (MIP6MH_HoTI,MIP6MH_CoTI).options>]
hashret()

DEV: returns a string that has the same value for a request and its answer.

class scapy.layers.inet6.MIP6OptAltCoA

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptAltCoA'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptAltCoA).otype>, <Field (MIP6OptAltCoA).olen>, <Field (MIP6OptAltCoA).acoa>]
x = 8
y = 6
class scapy.layers.inet6.MIP6OptBRAdvice

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptBRAdvice'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptBRAdvice).otype>, <Field (MIP6OptBRAdvice).olen>, <Field (MIP6OptBRAdvice).rinter>]
x = 2
y = 0
class scapy.layers.inet6.MIP6OptBindingAuthData

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptBindingAuthData'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptBindingAuthData).otype>, <Field (MIP6OptBindingAuthData).olen>, <Field (MIP6OptBindingAuthData).authenticator>]
x = 8
y = 2
class scapy.layers.inet6.MIP6OptCGAParams

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptCGAParams'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptCGAParams).otype>, <Field (MIP6OptCGAParams).olen>, <Field (MIP6OptCGAParams).cgaparams>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptCGAParamsReq

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptCGAParamsReq'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptCGAParamsReq).otype>, <Field (MIP6OptCGAParamsReq).olen>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptCareOfTest

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptCareOfTest'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptCareOfTest).otype>, <Field (MIP6OptCareOfTest).olen>, <Field (MIP6OptCareOfTest).cokt>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptCareOfTestInit

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptCareOfTestInit'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptCareOfTestInit).otype>, <Field (MIP6OptCareOfTestInit).olen>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptHomeKeygenToken

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptHomeKeygenToken'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptHomeKeygenToken).otype>, <Field (MIP6OptHomeKeygenToken).olen>, <Field (MIP6OptHomeKeygenToken).hkt>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptLLAddr

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptLLAddr'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptLLAddr).otype>, <Field (MIP6OptLLAddr).olen>, <Field (MIP6OptLLAddr).ocode>, <Field (MIP6OptLLAddr).pad>, <Field (MIP6OptLLAddr).lla>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptMNID

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptMNID'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptMNID).otype>, <Field (MIP6OptMNID).olen>, <Field (MIP6OptMNID).subtype>, <Field (MIP6OptMNID).id>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptMobNetPrefix

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptMobNetPrefix'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptMobNetPrefix).otype>, <Field (MIP6OptMobNetPrefix).olen>, <Field (MIP6OptMobNetPrefix).reserved>, <Field (MIP6OptMobNetPrefix).plen>, <Field (MIP6OptMobNetPrefix).prefix>]
x = 8
y = 4
class scapy.layers.inet6.MIP6OptMsgAuth

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptMsgAuth'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptMsgAuth).otype>, <Field (MIP6OptMsgAuth).olen>, <Field (MIP6OptMsgAuth).subtype>, <Field (MIP6OptMsgAuth).mspi>, <Field (MIP6OptMsgAuth).authdata>]
x = 4
y = 1
class scapy.layers.inet6.MIP6OptNonceIndices

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptNonceIndices'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptNonceIndices).otype>, <Field (MIP6OptNonceIndices).olen>, <Field (MIP6OptNonceIndices).hni>, <Field (MIP6OptNonceIndices).coni>]
x = 2
y = 0
class scapy.layers.inet6.MIP6OptReplayProtection

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptReplayProtection'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptReplayProtection).otype>, <Field (MIP6OptReplayProtection).olen>, <Field (MIP6OptReplayProtection).timestamp>]
x = 8
y = 2
class scapy.layers.inet6.MIP6OptSignature

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptSignature'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (MIP6OptSignature).otype>, <Field (MIP6OptSignature).olen>, <Field (MIP6OptSignature).sig>]
x = 0
y = 0
class scapy.layers.inet6.MIP6OptUnknown

Bases: scapy.layers.inet6._MIP6OptAlign

aliastypes = [<class 'scapy.layers.inet6.MIP6OptUnknown'>, <class 'scapy.layers.inet6._MIP6OptAlign'>, <class 'scapy.packet.Packet'>]
classmethod dispatch_hook(_pkt=None, *_, **kargs)
fields_desc = [<Field (MIP6OptUnknown).otype>, <Field (MIP6OptUnknown).olen>, <Field (MIP6OptUnknown).odata>]
x = 0
y = 0
scapy.layers.inet6.NDP_Attack_DAD_DoS_via_NA(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None)

Perform the DAD DoS attack using NS described in section 4.1.3 of RFC 3756. This is done by listening incoming NS messages sent from the unspecified address and sending a NA reply for the target address, leading the peer to believe that another node is also performing DAD for that address.

By default, the fake NA sent to create the DoS uses:
  • as target address the target address found in received NS.
  • as IPv6 source address: the target address found in received NS.
  • as IPv6 destination address: the link-local solicited-node multicast address derived from the target address in received NS.
  • the mac address of the interface as source (or reply_mac, see below).
  • the multicast mac address derived from the solicited node multicast address used as IPv6 destination address.
  • A Target Link-Layer address option (ICMPv6NDOptDstLLAddr) filled with the mac address used as source of the NA.

Following arguments can be used to change the behavior:

iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface. This address will also be used in the Target Link-Layer Address option.
scapy.layers.inet6.NDP_Attack_DAD_DoS_via_NS(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None)

Perform the DAD DoS attack using NS described in section 4.1.3 of RFC 3756. This is done by listening incoming NS messages sent from the unspecified address and sending a NS reply for the target address, leading the peer to believe that another node is also performing DAD for that address.

By default, the fake NS sent to create the DoS uses:
  • as target address the target address found in received NS.
  • as IPv6 source address: the unspecified address (::).
  • as IPv6 destination address: the link-local solicited-node multicast address derived from the target address in received NS.
  • the mac address of the interface as source (or reply_mac, see below).
  • the multicast mac address derived from the solicited node multicast address used as IPv6 destination address.

Following arguments can be used to change the behavior:

iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface.
scapy.layers.inet6.NDP_Attack_Fake_Router(ra, iface=None, mac_src_filter=None, ip_src_filter=None)

The purpose of this function is to send provided RA message at layer 2 (i.e. providing a packet starting with IPv6 will not work) in response to received RS messages. In the end, the function is a simple wrapper around sendp() that monitor the link for RS messages.

It is probably better explained with an example:

>>> ra  = Ether()/IPv6()/ICMPv6ND_RA()
>>> ra /= ICMPv6NDOptPrefixInfo(prefix="2001:db8:1::", prefixlen=64)
>>> ra /= ICMPv6NDOptPrefixInfo(prefix="2001:db8:2::", prefixlen=64)
>>> ra /= ICMPv6NDOptSrcLLAddr(lladdr="00:11:22:33:44:55")
>>> NDP_Attack_Fake_Router(ra, iface="eth0")
Fake RA sent in response to RS from fe80::213:58ff:fe8c:b573
Fake RA sent in response to RS from fe80::213:72ff:fe8c:b9ae
...

Following arguments can be used to change the behavior:

ra: the RA message to send in response to received RS message.

iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If none is provided, conf.iface is used.
mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only RS messages received from this source will trigger a reply. Note that no changes to provided RA is done which imply that if you intend to target only the source of the RS using this option, you will have to set the Ethernet destination address to the same value in your RA. The default value for this parameter is None: no filtering on the source of RS is done.
ip_src_filter: an IPv6 address (e.g. fe80::21e:bff:fe4e:3b2) to filter
on. Only RS messages received from this source address will trigger replies. Same comment as for previous argument apply: if you use the option, you will probably want to set a specific Ethernet destination address in the RA.
scapy.layers.inet6.NDP_Attack_Kill_Default_Router(iface=None, mac_src_filter=None, ip_src_filter=None, reply_mac=None, tgt_mac=None)

The purpose of the function is to monitor incoming RA messages sent by default routers (RA with a non-zero Router Lifetime values) and invalidate them by immediately replying with fake RA messages advertising a zero Router Lifetime value.

The result on receivers is that the router is immediately invalidated, i.e. the associated entry is discarded from the default router list and destination cache is updated to reflect the change.

By default, the function considers all RA messages with a non-zero Router Lifetime value but provides configuration knobs to allow filtering RA sent by specific routers (Ethernet source address). With regard to emission, the multicast all-nodes address is used by default but a specific target can be used, in order for the DoS to apply only to a specific host.

More precisely, following arguments can be used to change the behavior:

iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only RA messages received from this source will trigger replies. If other default routers advertised their presence on the link, their clients will not be impacted by the attack. The default value is None: the DoS is not limited to a specific mac address.
ip_src_filter: an IPv6 address (e.g. fe80::21e:bff:fe4e:3b2) to filter
on. Only RA messages received from this source address will trigger replies. If other default routers advertised their presence on the link, their clients will not be impacted by the attack. The default value is None: the DoS is not limited to a specific IPv6 source address.
reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface.
tgt_mac: allow limiting the effect of the DoS to a specific host,
by sending the “invalidating RA” only to its mac address.
scapy.layers.inet6.NDP_Attack_NA_Spoofing(iface=None, mac_src_filter=None, tgt_filter=None, reply_mac=None, router=False)

The main purpose of this function is to send fake Neighbor Advertisement messages to a victim. As the emission of unsolicited Neighbor Advertisement is pretty pointless (from an attacker standpoint) because it will not lead to a modification of a victim’s neighbor cache, the function send advertisements in response to received NS (NS sent as part of the DAD, i.e. with an unspecified address as source, are not considered).

By default, the fake NA sent to create the DoS uses:
  • as target address the target address found in received NS.
  • as IPv6 source address: the target address
  • as IPv6 destination address: the source IPv6 address of received NS message.
  • the mac address of the interface as source (or reply_mac, see below).
  • the source mac address of the received NS as destination macs address of the emitted NA.
  • A Target Link-Layer address option (ICMPv6NDOptDstLLAddr) filled with the mac address used as source of the NA.

Following arguments can be used to change the behavior:

iface: a specific interface (e.g. “eth0”) of the system on which the
DoS should be launched. If None is provided conf.iface is used.
mac_src_filter: a mac address (e.g “00:13:72:8c:b5:69”) to filter on.
Only NS messages received from this source will trigger replies. This allows limiting the effects of the DoS to a single target by filtering on its mac address. The default value is None: the DoS is not limited to a specific mac address.
tgt_filter: Same as previous but for a specific target IPv6 address for
received NS. If the target address in the NS message (not the IPv6 destination address) matches that address, then a fake reply will be sent, i.e. the emitter will be a target of the DoS.
reply_mac: allow specifying a specific source mac address for the reply,
i.e. to prevent the use of the mac address of the interface. This address will also be used in the Target Link-Layer Address option.
router: by the default (False) the ‘R’ flag in the NA used for the reply
is not set. If the parameter is set to True, the ‘R’ flag in the NA is set, advertising us as a router.

Please, keep the following in mind when using the function: for obvious reasons (kernel space vs. Python speed), when the target of the address resolution is on the link, the sender of the NS receives 2 NA messages in a row, the valid one and our fake one. The second one will overwrite the information provided by the first one, i.e. the natural latency of Scapy helps here.

In practice, on a common Ethernet link, the emission of the NA from the genuine target (kernel stack) usually occurs in the same millisecond as the receipt of the NS. The NA generated by Scapy6 will usually come after something 20+ ms. On a usual testbed for instance, this difference is sufficient to have the first data packet sent from the victim to the destination before it even receives our fake NA.

scapy.layers.inet6.NDP_Attack_NS_Spoofing(src_lladdr=None, src=None, target='2001:db8::1', dst=None, src_mac=None, dst_mac=None, loop=True, inter=1, iface=None)

The main purpose of this function is to send fake Neighbor Solicitations messages to a victim, in order to either create a new entry in its neighbor cache or update an existing one. In section 7.2.3 of RFC 4861, it is stated that a node SHOULD create the entry or update an existing one (if it is not currently performing DAD for the target of the NS). The entry’s reachability # noqa: E501 state is set to STALE.

The two main parameters of the function are the source link-layer address (carried by the Source Link-Layer Address option in the NS) and the source address of the packet.

Unlike some other NDP_Attack_* function, this one is not based on a stimulus/response model. When called, it sends the same NS packet in loop every second (the default)

Following arguments can be used to change the format of the packets:

src_lladdr: the MAC address used in the Source Link-Layer Address option
included in the NS packet. This is the address that the peer should associate in its neighbor cache with the IPv6 source address of the packet. If None is provided, the mac address of the interface is used.
src: the IPv6 address used as source of the packet. If None is provided,
an address associated with the emitting interface will be used (based on the destination address of the packet).
target: the target address of the NS packet. If no value is provided,
a dummy address (2001:db8::1) is used. The value of the target has a direct impact on the destination address of the packet if it is not overridden. By default, the solicited-node multicast address associated with the target is used as destination address of the packet. Consider specifying a specific destination address if you intend to use a target address different than the one of the victim.
dst: The destination address of the NS. By default, the solicited node
multicast address associated with the target address (see previous parameter) is used if no specific value is provided. The victim is not expected to check the destination address of the packet, so using a multicast address like ff02::1 should work if you want the attack to target all hosts on the link. On the contrary, if you want to be more stealth, you should provide the target address for this parameter in order for the packet to be sent only to the victim.
src_mac: the MAC address used as source of the packet. By default, this
is the address of the interface. If you want to be more stealth, feel free to use something else. Note that this address is not the that the victim will use to populate its neighbor cache.
dst_mac: The MAC address used as destination address of the packet. If
the IPv6 destination address is multicast (all-nodes, solicited node, …), it will be computed. If the destination address is unicast, a neighbor solicitation will be performed to get the associated address. If you want the attack to be stealth, you can provide the MAC address using this parameter.
loop: By default, this parameter is True, indicating that NS packets
will be sent in loop, separated by ‘inter’ seconds (see below). When set to False, a single packet is sent.
inter: When loop parameter is True (the default), this parameter provides
the interval in seconds used for sending NS packets.

iface: to force the sending interface.

class scapy.layers.inet6.NIQueryCodeField(name, default, enum)

Bases: scapy.fields.ByteEnumField

i2m(pkt, x)

Convert internal value to machine value

class scapy.layers.inet6.NIQueryDataField(name, default)

Bases: scapy.fields.StrField

addfield(pkt, s, val)

Add an internal value to a string

Copy the network representation of field val (belonging to layer pkt) to the raw string packet s, and return the new string packet.

getfield(pkt, s)

Extract an internal value from a string

Extract from the raw packet s the field value belonging to layer pkt.

Returns a two-element list, first the raw packet string after having removed the extracted field, second the extracted field itself in internal representation.

h2i(pkt, x)

Convert human value to internal value

i2h(pkt, x)

Convert internal value to human value

i2repr(pkt, x)

Convert internal value to a nice representation

class scapy.layers.inet6.NIReplyDataField(name, default, fmt='H', remain=0)

Bases: scapy.fields.StrField

addfield(pkt, s, val)

Add an internal value to a string

Copy the network representation of field val (belonging to layer pkt) to the raw string packet s, and return the new string packet.

getfield(pkt, s)

Extract an internal value from a string

Extract from the raw packet s the field value belonging to layer pkt.

Returns a two-element list, first the raw packet string after having removed the extracted field, second the extracted field itself in internal representation.

h2i(pkt, x)

Convert human value to internal value

i2h(pkt, x)

Convert internal value to human value

i2repr(pkt, x)

Convert internal value to a nice representation

class scapy.layers.inet6.NTPTimestampField(name, default)

Bases: scapy.fields.LongField

i2repr(pkt, x)

Convert internal value to a nice representation

class scapy.layers.inet6.NonceField(name, default=None)

Bases: scapy.fields.StrFixedLenField

class scapy.layers.inet6.Pad1

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.Pad1'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (Pad1).otype>]
class scapy.layers.inet6.PadN

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.PadN'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (PadN).otype>, <Field (PadN).optlen>, <Field (PadN).optdata>]
class scapy.layers.inet6.PseudoIPv6

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.PseudoIPv6'>, <class 'scapy.packet.Packet'>]
fields_desc = [<Field (PseudoIPv6).src>, <Field (PseudoIPv6).dst>, <Field (PseudoIPv6).uplen>, <Field (PseudoIPv6).zero>, <Field (PseudoIPv6).nh>]
class scapy.layers.inet6.RouterAlert

Bases: scapy.packet.Packet

aliastypes = [<class 'scapy.layers.inet6.RouterAlert'>, <class 'scapy.packet.Packet'>]
alignment_delta(curpos)
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:s (str) – the current layer
Returns:a couple of strings (actual layer, padding)
fields_desc = [<Field (RouterAlert).otype>, <Field (RouterAlert).optlen>, <Field (RouterAlert).value>]
class scapy.layers.inet6.TracerouteResult6(res=None, name='Traceroute', stats=None)

Bases: scapy.layers.inet.TracerouteResult

get_trace()
graph(ASres=<scapy.layers.inet6.AS_resolver6 object>, **kargs)

x.graph(ASres=conf.AS_resolver, other args): ASres=None : no AS resolver => no clustering ASres=AS_resolver() : default whois AS resolver (riswhois.ripe.net) ASres=AS_resolver_cymru(): use whois.cymru.com whois database ASres=AS_resolver(server=”whois.ra.net”) type: output type (svg, ps, gif, jpg, etc.), passed to dot’s “-T” option # noqa: E501 target: filename or redirect. Defaults pipe to Imagemagick’s display program # noqa: E501 prog: which graphviz program to use

show()

Best way to display the packet list. Defaults to nsummary() method

class scapy.layers.inet6.TruncPktLenField(name, default, cls, cur_shift, length_from=None, shift=0)

Bases: scapy.fields.PacketLenField

cur_shift
getfield(pkt, s)

Extract an internal value from a string

Extract from the raw packet s the field value belonging to layer pkt.

Returns a two-element list, first the raw packet string after having removed the extracted field, second the extracted field itself in internal representation.

i2len(pkt, i)

Convert internal value to a length usable by a FieldLenField

i2m(pkt, x)

Convert internal value to machine value

m2i(pkt, m)

Convert machine value to internal value

scapy.layers.inet6.computeNIGroupAddr(name)

Compute the NI group Address. Can take a FQDN as input parameter

scapy.layers.inet6.defragment6(packets)

Performs defragmentation of a list of IPv6 packets. Packets are reordered. Crap is dropped. What lacks is completed by ‘X’ characters.

scapy.layers.inet6.dnsrepr2names(x)

Take as input a DNS encoded string (possibly compressed) and returns a list of DNS names contained in it. If provided string is already in printable format (does not end with a null character, a one element list is returned). Result is a list.

scapy.layers.inet6.fragment6(pkt, fragSize)

Performs fragmentation of an IPv6 packet. Provided packet (‘pkt’) must already contain an IPv6ExtHdrFragment() class. ‘fragSize’ argument is the expected maximum size of fragments (MTU). The list of packets is returned.

If packet does not contain an IPv6ExtHdrFragment class, it is returned in result list.

scapy.layers.inet6.getmacbyip6(ip6, chainCC=0)

Returns the MAC address corresponding to an IPv6 address

neighborCache.get() method is used on instantiated neighbor cache. Resolution mechanism is described in associated doc string.

(chainCC parameter value ends up being passed to sending function
used to perform the resolution, if needed)
scapy.layers.inet6.in6_chksum(nh, u, p)

As Specified in RFC 2460 - 8.1 Upper-Layer Checksums

Performs IPv6 Upper Layer checksum computation.

This function operates by filling a pseudo header class instance (PseudoIPv6) with: - Next Header value - the address of _final_ destination (if some Routing Header with non segleft field is present in underlayer classes, last address is used.) - the address of _real_ source (basically the source address of an IPv6 class instance available in the underlayer or the source address in HAO option if some Destination Option header found in underlayer includes this option). - the length is the length of provided payload string (‘p’)

Parameters:
  • nh – value of upper layer protocol
  • u – upper layer instance (TCP, UDP, ICMPv6*, ). Instance must be provided with all under layers (IPv6 and all extension headers, for example)
  • p – the payload of the upper layer provided as a string
scapy.layers.inet6.inet6_register_l3(l2, l3)
scapy.layers.inet6.names2dnsrepr(x)

Take as input a list of DNS names or a single DNS name and encode it in DNS format (with possible compression) If a string that is already a DNS name in DNS format is passed, it is returned unmodified. Result is a string. !!! At the moment, compression is not implemented !!!

scapy.layers.inet6.neighsol(addr, src, iface, timeout=1, chainCC=0)

Sends and receive an ICMPv6 Neighbor Solicitation message

This function sends an ICMPv6 Neighbor Solicitation message to get the MAC address of the neighbor with specified IPv6 address address.

‘src’ address is used as source of the message. Message is sent on iface. By default, timeout waiting for an answer is 1 second.

If no answer is gathered, None is returned. Else, the answer is returned (ethernet frame).

scapy.layers.inet6.traceroute6(target, dport=80, minttl=1, maxttl=30, sport=<RandShort>, l4=None, timeout=2, verbose=None, **kargs)

Instant TCP traceroute using IPv6 traceroute6(target, [maxttl=30], [dport=80], [sport=80]) -> None