1% ERSPAN 2 3+ ERSPAN I 4= Build & dissect ERSPAN 1 5 6pkt = GRE()/ERSPAN_I()/Ether() 7pkt = GRE(bytes(pkt)) 8assert ERSPAN in pkt 9assert pkt.proto == 0x88be 10assert pkt.seqnum_present == 0 11 12+ ERSPAN II 13= Build ERSPAN II 14 15pkt = GRE()/ERSPAN_II()/Ether(src="11:11:11:11:11:11", dst="ff:ff:ff:ff:ff:ff") 16b = bytes(pkt) 17assert b == b'\x10\x00\x88\xbe\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x11\x11\x11\x11\x11\x11\x90\x00' 18 19= Dissect ERSPAN II 20 21pkt = GRE(b) 22assert pkt[GRE].proto == 0x88be 23assert pkt[GRE].seqnum_present == 1 24assert pkt[GRE][ERSPAN].ver == 1 25assert pkt[Ether].src == "11:11:11:11:11:11" 26 27+ ERSPAN III 28= Build & dissect ERSPAN III with platform specific 29 30pkt = GRE()/ERSPAN_III()/ERSPAN_PlatformSpecific()/Ether() 31pkt = GRE(bytes(pkt)) 32assert pkt[GRE].proto == 0x22eb 33assert pkt[ERSPAN_III].o == 1 34assert ERSPAN_PlatformSpecific in pkt 35assert Ether in pkt 36 37= Build & dissect ERSPAN III without platform specific 38pkt = GRE()/ERSPAN_III()/Ether() 39pkt = GRE(bytes(pkt)) 40assert pkt[GRE].proto == 0x22eb 41assert pkt[ERSPAN_III].o == 0 42assert ERSPAN_PlatformSpecific not in pkt 43assert Ether in pkt 44 45