aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts
ModeNameSize
-rwxr-xr-xcompdb_cleanup.py740logstatsplain
-rwxr-xr-xfts.py8712logstatsplain
-rwxr-xr-xgenerate_version_h1280logstatsplain
d---------host-stack78logstatsplain
-rwxr-xr-xremove-rpath970logstatsplain
-rwxr-xr-xversion2166logstatsplain
d---------vnet1964logstatsplain
-rw-r--r--vppctl_completion992logstatsplain
eral.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
diff --git a/scapy/layers/l2.py b/scapy/layers/l2.py
index 4f491d2..661a5da 100644
--- a/scapy/layers/l2.py
+++ b/scapy/layers/l2.py
@@ -570,6 +570,20 @@
     return getmacbyip(l3.pdst)
 conf.neighbor.register_l3(Ether, ARP, l2_register_l3_arp)
 
+
+class ERSPAN(Packet):
+    name = "ERSPAN"
+    fields_desc = [ BitField("ver",0,4),
+                    BitField("vlan",0,12),
+                    BitField("cos",0,3),
+                    BitField("en",0,2),
+                    BitField("t",0,1),
+                    BitField("session_id",0,10),
+                    BitField("reserved",0,12),
+                    BitField("index",0,20),
+                    ]
+
+
 class GRErouting(Packet):
     name = "GRE routing informations"
     fields_desc = [ ShortField("address_family",0),
--- a/scapy/layers/l2.py
+++ b/scapy/layers/l2.py
@@ -427,6 +427,7 @@ bind_layers( Dot1AD,        Dot1AD,        type=0x88a8)
 bind_layers( Dot1AD,        Dot1Q,         type=0x8100)
 bind_layers( Dot1Q,         Dot1AD,        type=0x88a8)
 bind_layers( Ether,         Ether,         type=1)
+bind_layers( GRE,           ERSPAN,        proto=0x88be, seqnum_present=1)
 bind_layers( Ether,         ARP,           type=2054)
 bind_layers( CookedLinux,   LLC,           proto=122)
 bind_layers( CookedLinux,   Dot1Q,         proto=33024)
@@ -441,6 +442,7 @@ bind_layers( GRE,           ARP,           proto=2054)
 bind_layers( GRE,           GRErouting,    { "routing_present" : 1 } )
 bind_layers( GRErouting,    conf.raw_layer,{ "address_family" : 0, "SRE_len" : 0 })
 bind_layers( GRErouting,    GRErouting,    { } )
+bind_layers( ERSPAN,        Ether)
 bind_layers( LLC,           STP,           dsap=66, ssap=66, ctrl=3)
 bind_layers( LLC,           SNAP,          dsap=170, ssap=170, ctrl=3)
 bind_layers( SNAP,          Dot1Q,         code=33024)