• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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