scapy.contrib.nsh

class scapy.contrib.nsh.NSH(_pkt, /, *, ver=0, oam=0, unused1=0, ttl=63, length=None, unused2=0, mdtype=1, nextproto=3, spi=0, si=255, context_header=b'', vlch=[])[source]

Bases: Packet

Network Service Header. NSH MD-type 1 if there is no ContextHeaders

aliastypes = [<class 'scapy.contrib.nsh.NSH'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<BitField (NSH).ver>, <BitField (NSH).oam>, <BitField (NSH).unused1>, <BitField (NSH).ttl>, <BitFieldLenField (NSH).length>, <BitField (NSH).unused2>, <BitEnumField (NSH).mdtype>, <ByteEnumField (NSH).nextproto>, <X3BytesField (NSH).spi>, <ByteField (NSH).si>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
mysummary()[source]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'nextproto': 1}, <class 'scapy.layers.inet.IP'>), ({'nextproto': 2}, <class 'scapy.layers.inet6.IPv6'>), ({'nextproto': 3}, <class 'scapy.layers.l2.Ether'>), ({'nextproto': 4}, <class 'scapy.contrib.nsh.NSH'>), ({'nextproto': 5}, <class 'scapy.contrib.mpls.MPLS'>)]
class scapy.contrib.nsh.NSHTLV(_pkt, /, *, class_=0, type=0, reserved=0, length=0, metadata=[])[source]

Bases: Packet

NSH MD-type 2 - Variable Length Context Headers

aliastypes = [<class 'scapy.contrib.nsh.NSHTLV'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ShortField (NSHTLV).class_>, <BitField (NSHTLV).type>, <BitField (NSHTLV).reserved>, <BitField (NSHTLV).length>, <PacketListField (NSHTLV).metadata>]