Python scapy中的伪线以太网控制字支持

Python scapy中的伪线以太网控制字支持,python,networking,scapy,Python,Networking,Scapy,scapy中是否支持PW以太网控制字?我需要创建一个包含此控制字的数据包。谢谢大家! 对scapy手册中关于如何构建新层的内容进行了一些研究,我已经编写了这段代码。我从scapy中的mpls代码中获取了一些示例。我已经测试过了,它似乎在包中添加了PW以太网控制字 from scapy.packet import Packet, bind_layers, Padding from scapy.fields import IntField from scapy.layers.inet import

scapy中是否支持PW以太网控制字?我需要创建一个包含此控制字的数据包。谢谢大家!

对scapy手册中关于如何构建新层的内容进行了一些研究,我已经编写了这段代码。我从scapy中的mpls代码中获取了一些示例。我已经测试过了,它似乎在包中添加了PW以太网控制字

from scapy.packet import Packet, bind_layers, Padding
from scapy.fields import IntField
from scapy.layers.inet import IP
from scapy.layers.inet6 import IPv6

class PseudowireControlWord(Packet):

    name = "PseudowireControlWord"
    fields_desc = [IntField("SeqNumber", 0)]

    def guess_payload_class(self, payload):
        if len(payload) >= 1:
            ip_version = (ord(payload[0]) >> 4) & 0xF
            if ip_version == 4:
                return IP
            elif ip_version == 6:
                return IPv6
        return Padding
此外,我还在scapy中的
guess\u payload\u类
函数中添加了对mpls.py代码的修改。我认为需要添加以下代码:

elif ip_version == 0:
    return PseudowireControlWord

我对scapy手册中有关如何构建新层的内容进行了一些研究,并编写了这段代码。我从scapy中的mpls代码中获取了一些示例。我已经测试过了,它似乎在包中添加了PW以太网控制字

from scapy.packet import Packet, bind_layers, Padding
from scapy.fields import IntField
from scapy.layers.inet import IP
from scapy.layers.inet6 import IPv6

class PseudowireControlWord(Packet):

    name = "PseudowireControlWord"
    fields_desc = [IntField("SeqNumber", 0)]

    def guess_payload_class(self, payload):
        if len(payload) >= 1:
            ip_version = (ord(payload[0]) >> 4) & 0xF
            if ip_version == 4:
                return IP
            elif ip_version == 6:
                return IPv6
        return Padding
此外,我还在scapy中的
guess\u payload\u类
函数中添加了对mpls.py代码的修改。我认为需要添加以下代码:

elif ip_version == 0:
    return PseudowireControlWord