X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_lisp.py;h=561e589bc62992b6dd41009f9d0c101c6a9d99bb;hb=22ab6f7cbb0f6139302aa6ca9f0c96dba17a37a7;hp=a896698c7b40628fccffa9162caec0d4437d84ac;hpb=770e89e6b916319eedd91c6edf16f0d7e89f556c;p=vpp.git diff --git a/test/test_lisp.py b/test/test_lisp.py index a896698c7b4..561e589bc62 100644 --- a/test/test_lisp.py +++ b/test/test_lisp.py @@ -1,15 +1,38 @@ #!/usr/bin/env python + +import abc +import six import unittest -from scapy.packet import Raw +from scapy.fields import BitField, ByteField, FlagsField, IntField +from scapy.packet import bind_layers, Packet, Raw from scapy.layers.inet import IP, UDP, Ether -from py_lispnetworking.lisp import LISP_GPE_Header +from scapy.layers.inet6 import IPv6 -from util import ppp, ForeignAddressFactory from framework import VppTestCase, VppTestRunner -from lisp import * +from lisp import VppLocalMapping, VppLispAdjacency, VppLispLocator, \ + VppLispLocatorSet, VppRemoteMapping +from util import ppp, ForeignAddressFactory + +# From py_lispnetworking.lisp.py: # GNU General Public License v2.0 +class LISP_GPE_Header(Packet): + name = "LISP GPE Header" + fields_desc = [ + FlagsField("gpe_flags", None, 6, ["N", "L", "E", "V", "I", "P"]), + BitField("reserved", 0, 18), + ByteField("next_proto", 0), + IntField("iid", 0), + ] +bind_layers(UDP, LISP_GPE_Header, dport=4341) +bind_layers(UDP, LISP_GPE_Header, sport=4341) +bind_layers(LISP_GPE_Header, IP, next_proto=1) +bind_layers(LISP_GPE_Header, IPv6, next_proto=2) +bind_layers(LISP_GPE_Header, Ether, next_proto=3) + + +@six.add_metaclass(abc.ABCMeta) class Driver(object): config_order = ['locator-sets', @@ -43,7 +66,7 @@ class Driver(object): Raw(payload)) return packet - @abstractmethod + @abc.abstractmethod def run(self): """ testing procedure """ pass @@ -97,11 +120,6 @@ class SimpleDriver(Driver): self.test.logger.info('Running {}'.format(tc[1]['name'])) self.configure_tc(tc[1]) - print self.test.vapi.cli("sh lisp loc") - print self.test.vapi.cli("sh lisp eid") - print self.test.vapi.cli("sh lisp adj vni 0") - print self.test.vapi.cli("sh lisp gpe entry") - packet = self.create_packet(self.test.pg0, self.test.pg1, dest, 'data') self.test.pg0.add_stream(packet) @@ -136,18 +154,18 @@ class TestLisp(VppTestCase): self.deid_ip4_net = self.faf.net self.deid_ip4 = self.faf.get_ip4() - self.seid_ip4 = '{}/{}'.format(self.pg0.local_ip4, 32) + self.seid_ip4 = '{!s}/{!s}'.format(self.pg0.local_ip4, 32) self.rloc_ip4 = self.pg1.remote_ip4n test_cases = [ { 'name': 'basic ip4 over ip4', - 'locator-sets': [VppLispLocatorSet(self, 'ls-4o4')], + 'locator-sets': [VppLispLocatorSet(self, b'ls-4o4')], 'locators': [ - VppLispLocator(self, self.pg1.sw_if_index, 'ls-4o4') + VppLispLocator(self, self.pg1.sw_if_index, b'ls-4o4') ], 'local-mappings': [ - VppLocalMapping(self, self.seid_ip4, 'ls-4o4') + VppLocalMapping(self, self.seid_ip4, b'ls-4o4') ], 'remote-mappings': [ VppRemoteMapping(self, self.deid_ip4_net,