scapy在编辑数据包时,如何让Ether中的type字段自动识别下层协议并更新?

代码如下

def create_eth_ipv6_ipv6_udp():
    pkt = (Ether(src='a0:00:00:00:00:01', dst='f0:00:00:00:00:02')/IPv6()/IPv6()/UDP())/Data(sys._getframe().f_code.co_name)
        return pkt

比如说以上的代码会返回一个ether_ipv6_ipv6_udp的报文,我现在需要给返回的这个包加一层vlan,

def add_vlan(pkt):
    pkt[Ether][1]=Dot1Q()/pkt[Ether][1]

就会变成ether_vlan_ipv6_ipv6_udp,此时ether的type字段并不会自动更新为0x8100,而依然保持0x86dd, 是否有方法能够使其自动更新?

https://www.csdn.net/gather_2e/MtjaIgysMTIwODYtYmxvZwO0O0OO0O0O.html