[dts] [PATCH V3 1/2] add sctp/gre format support in framework/packet module

Yufen Mo yufengx.mo at intel.com
Mon Aug 15 05:23:11 CEST 2016


From: yufengmx <yufengx.mo at intel.com>


Signed-off-by: yufengmx <yufengx.mo at intel.com>
---
 framework/packet.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/framework/packet.py b/framework/packet.py
index 6c892e5..93d6879 100755
--- a/framework/packet.py
+++ b/framework/packet.py
@@ -276,12 +276,24 @@ class scapy(object):
         if chksum is not None:
             pkt_layer.chksum = chksum
 
+    def sctp(self, pkt_layer, src=53, dst=53, len=None, chksum=None):
+        pkt_layer.sport = src
+        pkt_layer.dport = dst
+        if len is not None:
+            pkt_layer.len = len
+        if chksum is not None:
+            pkt_layer.chksum = chksum
+
     def raw(self, pkt_layer, payload=None):
         if payload is not None:
             pkt_layer.load = ''
             for hex1, hex2 in payload:
                 pkt_layer.load += struct.pack("=B", int('%s%s' %(hex1, hex2), 16))
 
+    def gre(self, pkt_layer, proto=None):
+        if proto is not None:
+            pkt_layer.proto = proto
+
     def vxlan(self, pkt_layer, vni=0):
         pkt_layer.vni = vni
 
@@ -472,9 +484,11 @@ class Packet(object):
             'VLAN': 'vlan',
             'ETAG': 'etag',
             'IP': 'ipv4',
+            'IPv4-TUNNEL':'inner_ipv4',
             'IPihl': 'ipv4ihl',
             'IPFRAG': 'ipv4_ext',
             'IPv6': 'ipv6',
+            'IPv6-TUNNEL':'inner_ipv6',
             'IPv6FRAG': 'ipv6_frag',
             'IPv6EXT': 'ipv6_ext',
             'IPv6EXT2': 'ipv6_ext2',
@@ -593,6 +607,12 @@ class Packet(object):
     def _config_layer_tcp(self, pkt_layer, config):
         return self.pktgen.tcp(pkt_layer, **config)
 
+    def _config_layer_sctp(self, pkt_layer, config):
+        return self.pktgen.sctp(pkt_layer, **config)
+
+    def _config_layer_gre(self, pkt_layer, config):
+        return self.pktgen.gre(pkt_layer, **config)
+
     def _config_layer_raw(self, pkt_layer, config):
         return self.pktgen.raw(pkt_layer, **config)
 
-- 
1.9.3



More information about the dts mailing list