test suite reviews and discussions
 help / color / Atom feed
* [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh
@ 2019-10-14 21:49 lihong
  2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: lihong @ 2019-10-14 21:49 UTC (permalink / raw)
  To: dts; +Cc: lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 dep/mpls.py | 24 ++++++++++++++++++++++
 dep/nsh.py  | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+)
 create mode 100644 dep/mpls.py
 create mode 100644 dep/nsh.py

diff --git a/dep/mpls.py b/dep/mpls.py
new file mode 100644
index 0000000..0b37bba
--- /dev/null
+++ b/dep/mpls.py
@@ -0,0 +1,24 @@
+from scapy.packet import Packet, bind_layers, Padding
+from scapy.fields import BitField,ByteField
+from scapy.layers.inet import IP
+from scapy.layers.inet6 import IPv6
+from scapy.layers.l2 import Ether, GRE
+
+class MPLS(Packet):
+   name = "MPLS"
+   fields_desc =  [ BitField("label", 3, 20),
+                    BitField("cos", 0, 3),
+                    BitField("s", 1, 1),
+                    ByteField("ttl", 0)  ]
+
+   def guess_payload_class(self, payload):
+       if len(payload) >= 1:
+           ip_version = (ord(payload[0]) >> 4) & 0xF
+           if ip_version == 4:
+               return IP
+           elif ip_version == 6:
+               return IPv6
+       return Padding
+
+bind_layers(Ether, MPLS, type=0x8847)
+bind_layers(GRE, MPLS, proto=0x8847)
diff --git a/dep/nsh.py b/dep/nsh.py
new file mode 100644
index 0000000..2e249c9
--- /dev/null
+++ b/dep/nsh.py
@@ -0,0 +1,67 @@
+from scapy.packet import *
+from scapy.fields import *
+from scapy.layers.inet import Ether, IP
+from scapy.layers.inet6 import IPv6
+from vxlan import VXLAN
+from mpls import MPLS
+
+
+class Metadata(Packet):
+    name = 'NSH metadata'
+    fields_desc = [XIntField('value', 0)]
+
+
+class NSHTLV(Packet):
+    "NSH MD-type 2 - Variable Length Context Headers"
+    name = "NSHTLV"
+    fields_desc = [
+        ShortField('Class', 0),
+        BitField('Critical', 0, 1),
+        BitField('Type', 0, 7),
+        BitField('Reserved', 0, 3),
+        BitField('Len', 0, 5),
+        PacketListField('Metadata', None, XIntField, count_from='Len')
+    ]
+
+
+class NSH(Packet):
+    """Network Service Header.
+       NSH MD-type 1 if there is no ContextHeaders"""
+    name = "NSH"
+
+    fields_desc = [
+        BitField('Ver', 0, 2),
+        BitField('OAM', 0, 1),
+        BitField('Critical', 0, 1),
+        BitField('Reserved', 0, 6),
+        BitField('Len', 0, 6),
+        ByteEnumField('MDType', 1, {1: 'Fixed Length',
+                                    2: 'Variable Length'}),
+        ByteEnumField('NextProto', 3, {1: 'IPv4',
+                                       2: 'IPv6',
+                                       3: 'Ethernet',
+                                       4: 'NSH',
+                                       5: 'MPLS'}),
+        X3BytesField('NSP', 0),
+        ByteField('NSI', 1),
+        ConditionalField(XIntField('NPC', 0), lambda pkt: pkt.MDType == 1),
+        ConditionalField(XIntField('NSC', 0), lambda pkt: pkt.MDType == 1),
+        ConditionalField(XIntField('SPC', 0), lambda pkt: pkt.MDType == 1),
+        ConditionalField(XIntField('SSC', 0), lambda pkt: pkt.MDType == 1),
+        ConditionalField(PacketListField("ContextHeaders", None,
+                                         NSHTLV, count_from="Length"),
+                         lambda pkt: pkt.MDType == 2)
+        ]
+
+    def mysummary(self):
+        return self.sprintf("NSP: %NSP% - NSI: %NSI%")
+
+
+bind_layers(Ether, NSH, {'type': 0x894F}, type=0x894F)
+bind_layers(VXLAN, NSH, {'flags': 0xC, 'NextProtocol': 4}, NextProtocol=4)
+
+bind_layers(NSH, IP, {'NextProto': 1}, NextProto=1)
+bind_layers(NSH, IPv6, {'NextProto': 2}, NextProto=2)
+bind_layers(NSH, Ether, {'NextProto': 3}, NextProto=3)
+bind_layers(NSH, NSH, {'NextProto': 4}, NextProto=4)
+bind_layers(NSH, MPLS, {'NextProto': 5}, NextProto=5)
-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls
  2019-10-14 21:49 [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh lihong
@ 2019-10-14 21:49 ` lihong
  2019-11-04  5:33   ` Chen, Zhaoyan
  2019-11-22  5:38   ` Tu, Lijuan
  2019-10-14 21:49 ` [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code lihong
  2019-11-04  5:33 ` [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh Chen, Zhaoyan
  2 siblings, 2 replies; 8+ messages in thread
From: lihong @ 2019-10-14 21:49 UTC (permalink / raw)
  To: dts; +Cc: lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 framework/packet.py | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/framework/packet.py b/framework/packet.py
index 05b2367..2ceed06 100755
--- a/framework/packet.py
+++ b/framework/packet.py
@@ -53,6 +53,8 @@ from vxlan import VXLAN
 from nvgre import NVGRE, IPPROTO_NVGRE
 from lldp import LLDP, LLDPManagementAddress
 from Dot1BR import Dot1BR
+from nsh import NSH
+from mpls import MPLS
 
 from utils import convert_ip2int
 from utils import convert_int2ip
@@ -64,7 +66,7 @@ from utils import get_backtrace_object
 PACKETGEN = "scapy"
 
 LayersTypes = {
-    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp'],
+    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp', 'mpls', 'nsh'],
     # ipv4_ext_unknown, ipv6_ext_unknown
     "L3": ['ipv4', 'ipv4ihl', 'ipv6', 'ipv4_ext', 'ipv6_ext', 'ipv6_ext2', 'ipv6_frag'],
     "L4": ['tcp', 'udp', 'frag', 'sctp', 'icmp', 'nofrag'],
@@ -107,6 +109,8 @@ class scapy(object):
         'gre': GRE(),
         'raw': Raw(),
         'vxlan': VXLAN(),
+        'nsh': NSH(),
+        'mpls': MPLS(),
 
         'inner_mac': Ether(),
         'inner_vlan': Dot1Q(),
@@ -321,6 +325,30 @@ class scapy(object):
     def vxlan(self, pkt_layer, vni=0):
         pkt_layer.vni = vni
 
+    def nsh(self, pkt_layer, ver=0, oam=0, critical=0, reserved=0, len=0, mdtype=1, nextproto=3,
+            nsp=0x0, nsi=1, npc= 0x0, nsc= 0x0, spc= 0x0, ssc= 0x0):
+        pkt_layer.Ver = ver
+        pkt_layer.OAM = oam
+        pkt_layer.Critical = critical
+        pkt_layer.Reserved = reserved
+        if len != 0:
+            pkt_layer.Len = len
+        pkt_layer.MDType = mdtype
+        pkt_layer.NextProto = nextproto
+        pkt_layer.NSP = nsp
+        pkt_layer.NSI = nsi
+        if mdtype == 1:
+            pkt_layer.NPC = npc
+            pkt_layer.NSC = nsc
+            pkt_layer.SPC = spc
+            pkt_layer.SSC = ssc
+
+    def mpls(self, pkt_layer, label=0, cos=0, s=0, ttl=64):
+        pkt_layer.label = label
+        pkt_layer.cos = cos
+        pkt_layer.s = s
+        pkt_layer.ttl = ttl
+
 
 class Packet(object):
 
@@ -700,6 +728,8 @@ class Packet(object):
             'GRE': 'gre',
             'VXLAN': 'vxlan',
             'PKT': 'raw',
+            'MPLS': 'mpls',
+            'NSH': 'nsh',
         }
 
         layers = self.pkt_type.split('_')
-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code
  2019-10-14 21:49 [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh lihong
  2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
@ 2019-10-14 21:49 ` lihong
  2019-10-16  1:59   ` Ma, LihongX
  2019-11-04  5:33 ` [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh Chen, Zhaoyan
  2 siblings, 1 reply; 8+ messages in thread
From: lihong @ 2019-10-14 21:49 UTC (permalink / raw)
  To: dts; +Cc: lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 tests/TestSuite_uni_pkt.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py
index 0310e04..e6bd42b 100644
--- a/tests/TestSuite_uni_pkt.py
+++ b/tests/TestSuite_uni_pkt.py
@@ -444,9 +444,8 @@ class TestUniPacket(TestCase):
                              }
 
         for packet in nsh_packets:
-            self.tester.scapy_foreground()
-            self.tester.scapy_append("sendp([%s],iface='%s')" % (nsh_packets[packet], self.tester_iface))
-            self.tester.scapy_execute()
+            pk=Packet(nsh_packets[packet])
+            pk.send_pkt(self.tester, self.tester_iface)
             out = self.dut.get_session_output(timeout=2)
             self.verify(nsh_detect_message[packet] in out, "Packet Detection Error for : %s" % packet)
             print utils.GREEN("Detected packet %s Successfully" % packet)
-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code
  2019-10-14 21:49 ` [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code lihong
@ 2019-10-16  1:59   ` Ma, LihongX
  2019-11-04  5:34     ` Chen, Zhaoyan
  0 siblings, 1 reply; 8+ messages in thread
From: Ma, LihongX @ 2019-10-16  1:59 UTC (permalink / raw)
  To: dts

[-- Attachment #1: Type: text/plain, Size: 1242 bytes --]

Tested-by:ma,lihong<lihongx.ma@intel.com>

-----Original Message-----
From: Ma, LihongX 
Sent: Tuesday, October 15, 2019 5:49 AM
To: dts@dpdk.org
Cc: Ma, LihongX <lihongx.ma@intel.com>
Subject: [dts][PATCH V2 3/3][nsh] tests/uni_pkt: update code

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 tests/TestSuite_uni_pkt.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py index 0310e04..e6bd42b 100644
--- a/tests/TestSuite_uni_pkt.py
+++ b/tests/TestSuite_uni_pkt.py
@@ -444,9 +444,8 @@ class TestUniPacket(TestCase):
                              }
 
         for packet in nsh_packets:
-            self.tester.scapy_foreground()
-            self.tester.scapy_append("sendp([%s],iface='%s')" % (nsh_packets[packet], self.tester_iface))
-            self.tester.scapy_execute()
+            pk=Packet(nsh_packets[packet])
+            pk.send_pkt(self.tester, self.tester_iface)
             out = self.dut.get_session_output(timeout=2)
             self.verify(nsh_detect_message[packet] in out, "Packet Detection Error for : %s" % packet)
             print utils.GREEN("Detected packet %s Successfully" % packet)
--
2.7.4


[-- Attachment #2: TestUniPacket.log --]
[-- Type: application/octet-stream, Size: 327354 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh
  2019-10-14 21:49 [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh lihong
  2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
  2019-10-14 21:49 ` [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code lihong
@ 2019-11-04  5:33 ` Chen, Zhaoyan
  2 siblings, 0 replies; 8+ messages in thread
From: Chen, Zhaoyan @ 2019-11-04  5:33 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Ma, LihongX, Chen, Zhaoyan

Acked-by: Chen, Zhaoyan <zhaoyan.chen@intel.com>



Regards,
Zhaoyan Chen

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of lihong
> Sent: Tuesday, October 15, 2019 5:49 AM
> To: dts@dpdk.org
> Cc: Ma, LihongX <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh
> 
> Signed-off-by: lihong <lihongx.ma@intel.com>
> ---
>  dep/mpls.py | 24 ++++++++++++++++++++++  dep/nsh.py  | 67
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 91 insertions(+)
>  create mode 100644 dep/mpls.py
>  create mode 100644 dep/nsh.py
> 
> diff --git a/dep/mpls.py b/dep/mpls.py
> new file mode 100644
> index 0000000..0b37bba
> --- /dev/null
> +++ b/dep/mpls.py
> @@ -0,0 +1,24 @@
> +from scapy.packet import Packet, bind_layers, Padding from scapy.fields
> +import BitField,ByteField from scapy.layers.inet import IP from
> +scapy.layers.inet6 import IPv6 from scapy.layers.l2 import Ether, GRE
> +
> +class MPLS(Packet):
> +   name = "MPLS"
> +   fields_desc =  [ BitField("label", 3, 20),
> +                    BitField("cos", 0, 3),
> +                    BitField("s", 1, 1),
> +                    ByteField("ttl", 0)  ]
> +
> +   def guess_payload_class(self, payload):
> +       if len(payload) >= 1:
> +           ip_version = (ord(payload[0]) >> 4) & 0xF
> +           if ip_version == 4:
> +               return IP
> +           elif ip_version == 6:
> +               return IPv6
> +       return Padding
> +
> +bind_layers(Ether, MPLS, type=0x8847)
> +bind_layers(GRE, MPLS, proto=0x8847)
> diff --git a/dep/nsh.py b/dep/nsh.py
> new file mode 100644
> index 0000000..2e249c9
> --- /dev/null
> +++ b/dep/nsh.py
> @@ -0,0 +1,67 @@
> +from scapy.packet import *
> +from scapy.fields import *
> +from scapy.layers.inet import Ether, IP from scapy.layers.inet6 import
> +IPv6 from vxlan import VXLAN from mpls import MPLS
> +
> +
> +class Metadata(Packet):
> +    name = 'NSH metadata'
> +    fields_desc = [XIntField('value', 0)]
> +
> +
> +class NSHTLV(Packet):
> +    "NSH MD-type 2 - Variable Length Context Headers"
> +    name = "NSHTLV"
> +    fields_desc = [
> +        ShortField('Class', 0),
> +        BitField('Critical', 0, 1),
> +        BitField('Type', 0, 7),
> +        BitField('Reserved', 0, 3),
> +        BitField('Len', 0, 5),
> +        PacketListField('Metadata', None, XIntField, count_from='Len')
> +    ]
> +
> +
> +class NSH(Packet):
> +    """Network Service Header.
> +       NSH MD-type 1 if there is no ContextHeaders"""
> +    name = "NSH"
> +
> +    fields_desc = [
> +        BitField('Ver', 0, 2),
> +        BitField('OAM', 0, 1),
> +        BitField('Critical', 0, 1),
> +        BitField('Reserved', 0, 6),
> +        BitField('Len', 0, 6),
> +        ByteEnumField('MDType', 1, {1: 'Fixed Length',
> +                                    2: 'Variable Length'}),
> +        ByteEnumField('NextProto', 3, {1: 'IPv4',
> +                                       2: 'IPv6',
> +                                       3: 'Ethernet',
> +                                       4: 'NSH',
> +                                       5: 'MPLS'}),
> +        X3BytesField('NSP', 0),
> +        ByteField('NSI', 1),
> +        ConditionalField(XIntField('NPC', 0), lambda pkt: pkt.MDType == 1),
> +        ConditionalField(XIntField('NSC', 0), lambda pkt: pkt.MDType == 1),
> +        ConditionalField(XIntField('SPC', 0), lambda pkt: pkt.MDType == 1),
> +        ConditionalField(XIntField('SSC', 0), lambda pkt: pkt.MDType == 1),
> +        ConditionalField(PacketListField("ContextHeaders", None,
> +                                         NSHTLV, count_from="Length"),
> +                         lambda pkt: pkt.MDType == 2)
> +        ]
> +
> +    def mysummary(self):
> +        return self.sprintf("NSP: %NSP% - NSI: %NSI%")
> +
> +
> +bind_layers(Ether, NSH, {'type': 0x894F}, type=0x894F)
> +bind_layers(VXLAN, NSH, {'flags': 0xC, 'NextProtocol': 4},
> +NextProtocol=4)
> +
> +bind_layers(NSH, IP, {'NextProto': 1}, NextProto=1) bind_layers(NSH,
> +IPv6, {'NextProto': 2}, NextProto=2) bind_layers(NSH, Ether,
> +{'NextProto': 3}, NextProto=3) bind_layers(NSH, NSH, {'NextProto': 4},
> +NextProto=4) bind_layers(NSH, MPLS, {'NextProto': 5}, NextProto=5)
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls
  2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
@ 2019-11-04  5:33   ` Chen, Zhaoyan
  2019-11-22  5:38   ` Tu, Lijuan
  1 sibling, 0 replies; 8+ messages in thread
From: Chen, Zhaoyan @ 2019-11-04  5:33 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Ma, LihongX, Chen, Zhaoyan

Acked-by: Chen, Zhaoyan <zhaoyan.chen@intel.com>



Regards,
Zhaoyan Chen

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of lihong
> Sent: Tuesday, October 15, 2019 5:49 AM
> To: dts@dpdk.org
> Cc: Ma, LihongX <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and
> mpls
> 
> Signed-off-by: lihong <lihongx.ma@intel.com>
> ---
>  framework/packet.py | 32 +++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/framework/packet.py b/framework/packet.py index 05b2367..2ceed06
> 100755
> --- a/framework/packet.py
> +++ b/framework/packet.py
> @@ -53,6 +53,8 @@ from vxlan import VXLAN  from nvgre import NVGRE,
> IPPROTO_NVGRE  from lldp import LLDP, LLDPManagementAddress  from
> Dot1BR import Dot1BR
> +from nsh import NSH
> +from mpls import MPLS
> 
>  from utils import convert_ip2int
>  from utils import convert_int2ip
> @@ -64,7 +66,7 @@ from utils import get_backtrace_object  PACKETGEN =
> "scapy"
> 
>  LayersTypes = {
> -    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp'],
> +    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp', 'mpls',
> + 'nsh'],
>      # ipv4_ext_unknown, ipv6_ext_unknown
>      "L3": ['ipv4', 'ipv4ihl', 'ipv6', 'ipv4_ext', 'ipv6_ext', 'ipv6_ext2', 'ipv6_frag'],
>      "L4": ['tcp', 'udp', 'frag', 'sctp', 'icmp', 'nofrag'], @@ -107,6 +109,8 @@ class
> scapy(object):
>          'gre': GRE(),
>          'raw': Raw(),
>          'vxlan': VXLAN(),
> +        'nsh': NSH(),
> +        'mpls': MPLS(),
> 
>          'inner_mac': Ether(),
>          'inner_vlan': Dot1Q(),
> @@ -321,6 +325,30 @@ class scapy(object):
>      def vxlan(self, pkt_layer, vni=0):
>          pkt_layer.vni = vni
> 
> +    def nsh(self, pkt_layer, ver=0, oam=0, critical=0, reserved=0, len=0, mdtype=1,
> nextproto=3,
> +            nsp=0x0, nsi=1, npc= 0x0, nsc= 0x0, spc= 0x0, ssc= 0x0):
> +        pkt_layer.Ver = ver
> +        pkt_layer.OAM = oam
> +        pkt_layer.Critical = critical
> +        pkt_layer.Reserved = reserved
> +        if len != 0:
> +            pkt_layer.Len = len
> +        pkt_layer.MDType = mdtype
> +        pkt_layer.NextProto = nextproto
> +        pkt_layer.NSP = nsp
> +        pkt_layer.NSI = nsi
> +        if mdtype == 1:
> +            pkt_layer.NPC = npc
> +            pkt_layer.NSC = nsc
> +            pkt_layer.SPC = spc
> +            pkt_layer.SSC = ssc
> +
> +    def mpls(self, pkt_layer, label=0, cos=0, s=0, ttl=64):
> +        pkt_layer.label = label
> +        pkt_layer.cos = cos
> +        pkt_layer.s = s
> +        pkt_layer.ttl = ttl
> +
> 
>  class Packet(object):
> 
> @@ -700,6 +728,8 @@ class Packet(object):
>              'GRE': 'gre',
>              'VXLAN': 'vxlan',
>              'PKT': 'raw',
> +            'MPLS': 'mpls',
> +            'NSH': 'nsh',
>          }
> 
>          layers = self.pkt_type.split('_')
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code
  2019-10-16  1:59   ` Ma, LihongX
@ 2019-11-04  5:34     ` Chen, Zhaoyan
  0 siblings, 0 replies; 8+ messages in thread
From: Chen, Zhaoyan @ 2019-11-04  5:34 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Chen, Zhaoyan

Acked-by: Chen, Zhaoyan <zhaoyan.chen@intel.com>



Regards,
Zhaoyan Chen

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Ma, LihongX
> Sent: Wednesday, October 16, 2019 10:00 AM
> To: dts@dpdk.org
> Subject: Re: [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code
> 
> Tested-by:ma,lihong<lihongx.ma@intel.com>
> 
> -----Original Message-----
> From: Ma, LihongX
> Sent: Tuesday, October 15, 2019 5:49 AM
> To: dts@dpdk.org
> Cc: Ma, LihongX <lihongx.ma@intel.com>
> Subject: [dts][PATCH V2 3/3][nsh] tests/uni_pkt: update code
> 
> Signed-off-by: lihong <lihongx.ma@intel.com>
> ---
>  tests/TestSuite_uni_pkt.py | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py index
> 0310e04..e6bd42b 100644
> --- a/tests/TestSuite_uni_pkt.py
> +++ b/tests/TestSuite_uni_pkt.py
> @@ -444,9 +444,8 @@ class TestUniPacket(TestCase):
>                               }
> 
>          for packet in nsh_packets:
> -            self.tester.scapy_foreground()
> -            self.tester.scapy_append("sendp([%s],iface='%s')" % (nsh_packets[packet],
> self.tester_iface))
> -            self.tester.scapy_execute()
> +            pk=Packet(nsh_packets[packet])
> +            pk.send_pkt(self.tester, self.tester_iface)
>              out = self.dut.get_session_output(timeout=2)
>              self.verify(nsh_detect_message[packet] in out, "Packet Detection Error
> for : %s" % packet)
>              print utils.GREEN("Detected packet %s Successfully" % packet)
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls
  2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
  2019-11-04  5:33   ` Chen, Zhaoyan
@ 2019-11-22  5:38   ` Tu, Lijuan
  1 sibling, 0 replies; 8+ messages in thread
From: Tu, Lijuan @ 2019-11-22  5:38 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Ma, LihongX

Applied the series.

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of lihong
> Sent: Tuesday, October 15, 2019 5:49 AM
> To: dts@dpdk.org
> Cc: Ma, LihongX <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh
> and mpls
> 
> Signed-off-by: lihong <lihongx.ma@intel.com>
> ---
>  framework/packet.py | 32 +++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/framework/packet.py b/framework/packet.py index
> 05b2367..2ceed06 100755
> --- a/framework/packet.py
> +++ b/framework/packet.py
> @@ -53,6 +53,8 @@ from vxlan import VXLAN  from nvgre import NVGRE,
> IPPROTO_NVGRE  from lldp import LLDP, LLDPManagementAddress  from
> Dot1BR import Dot1BR
> +from nsh import NSH
> +from mpls import MPLS
> 
>  from utils import convert_ip2int
>  from utils import convert_int2ip
> @@ -64,7 +66,7 @@ from utils import get_backtrace_object  PACKETGEN =
> "scapy"
> 
>  LayersTypes = {
> -    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp'],
> +    "L2": ['ether', 'vlan', 'etag', '1588', 'arp', 'lldp', 'mpls',
> + 'nsh'],
>      # ipv4_ext_unknown, ipv6_ext_unknown
>      "L3": ['ipv4', 'ipv4ihl', 'ipv6', 'ipv4_ext', 'ipv6_ext', 'ipv6_ext2', 'ipv6_frag'],
>      "L4": ['tcp', 'udp', 'frag', 'sctp', 'icmp', 'nofrag'], @@ -107,6 +109,8 @@
> class scapy(object):
>          'gre': GRE(),
>          'raw': Raw(),
>          'vxlan': VXLAN(),
> +        'nsh': NSH(),
> +        'mpls': MPLS(),
> 
>          'inner_mac': Ether(),
>          'inner_vlan': Dot1Q(),
> @@ -321,6 +325,30 @@ class scapy(object):
>      def vxlan(self, pkt_layer, vni=0):
>          pkt_layer.vni = vni
> 
> +    def nsh(self, pkt_layer, ver=0, oam=0, critical=0, reserved=0, len=0,
> mdtype=1, nextproto=3,
> +            nsp=0x0, nsi=1, npc= 0x0, nsc= 0x0, spc= 0x0, ssc= 0x0):
> +        pkt_layer.Ver = ver
> +        pkt_layer.OAM = oam
> +        pkt_layer.Critical = critical
> +        pkt_layer.Reserved = reserved
> +        if len != 0:
> +            pkt_layer.Len = len
> +        pkt_layer.MDType = mdtype
> +        pkt_layer.NextProto = nextproto
> +        pkt_layer.NSP = nsp
> +        pkt_layer.NSI = nsi
> +        if mdtype == 1:
> +            pkt_layer.NPC = npc
> +            pkt_layer.NSC = nsc
> +            pkt_layer.SPC = spc
> +            pkt_layer.SSC = ssc
> +
> +    def mpls(self, pkt_layer, label=0, cos=0, s=0, ttl=64):
> +        pkt_layer.label = label
> +        pkt_layer.cos = cos
> +        pkt_layer.s = s
> +        pkt_layer.ttl = ttl
> +
> 
>  class Packet(object):
> 
> @@ -700,6 +728,8 @@ class Packet(object):
>              'GRE': 'gre',
>              'VXLAN': 'vxlan',
>              'PKT': 'raw',
> +            'MPLS': 'mpls',
> +            'NSH': 'nsh',
>          }
> 
>          layers = self.pkt_type.split('_')
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, back to index

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-14 21:49 [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh lihong
2019-10-14 21:49 ` [dts] [PATCH V2 2/3][nsh] framework/packet: add support of nsh and mpls lihong
2019-11-04  5:33   ` Chen, Zhaoyan
2019-11-22  5:38   ` Tu, Lijuan
2019-10-14 21:49 ` [dts] [PATCH V2 3/3][nsh] tests/uni_pkt: update code lihong
2019-10-16  1:59   ` Ma, LihongX
2019-11-04  5:34     ` Chen, Zhaoyan
2019-11-04  5:33 ` [dts] [PATCH V2 1/3][nsh] dep: add support of mpls and nsh Chen, Zhaoyan

test suite reviews and discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/dts/0 dts/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dts dts/ http://inbox.dpdk.org/dts \
		dts@dpdk.org
	public-inbox-index dts


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dts


AGPL code for this site: git clone https://public-inbox.org/ public-inbox