aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/map
AgeCommit message (Expand)AuthorFilesLines
2021-05-13tests: move test source to vpp/testDave Wallace2-1658/+0
2021-03-30map: tune dump/details test for socket transportOle Troan1-1/+1
2021-03-15tests: use socket transport instead of shared memoryOle Troan1-4/+5
2021-02-04api: Fold the empty pool check into the main macroNeale Ranns1-6/+0
2021-02-03vppapigen: Support an 'autoendian' keyword for message definitions inNeale Ranns2-3/+1
2020-12-14misc: refactor clib_bitmap_foreach macroDamjan Marion1-3/+3
2020-12-14misc: move to new pool_foreach macrosDamjan Marion2-9/+9
2020-11-30map: add include guard to map.hPaul Vinciguerra1-0/+4
2020-11-25api: vat2 and json autogeneration for api messagesOle Troan1-1/+4
2020-10-13stats: counters data modelOle Troan6-68/+128
2020-09-16api: clean up use of deprecated flagOle Troan1-1/+1
2020-09-01ip: fix ip zero checksum verificationBenoît Ganne1-1/+1
2020-07-16adl: move allow/deny list function to pluginDave Barach1-2/+2
2020-05-27api: make vpp api handlers endian independentOle Troan1-4/+7
2020-05-25api: add new stream message conventionOle Troan3-30/+122
2020-04-28tests: move defaults from defaultmapping to .api filesPaul Vinciguerra1-2/+2
2020-03-25map: fix hop limit expiration at brVladimir Ratnikov2-2/+29
2020-03-24map: fix translation of icmp6 error messagesAlexander Chernavin1-1/+80
2020-03-15map: fix translation of icmp4 error messagesAlexander Chernavin2-6/+51
2020-03-04map: fix map port calculation for ICMPVladimir Isaev4-14/+78
2020-02-26map: handle IPv6 extension headers for TCP/UDPVladimir Isaev1-2/+2
2020-02-20map: honor pre-resolve param in map-tAlexander Chernavin6-30/+154
2020-02-20map: honor icmp6-unreachables param in map-tAlexander Chernavin2-2/+47
2020-02-04ip: translate fragmented icmp to fragmented icmp6Alexander Chernavin1-7/+32
2020-01-30map: Add several more MAP-T BR testsJon Loeliger1-8/+294
2020-01-30map: Prevent IPv4 prefix spoofing during IPv6 -> IPv4Jon Loeliger2-2/+279
2020-01-30map: handle ip4 ttl=1 packets in map-tAlexander Chernavin3-10/+20
2020-01-29tests: add map-t fragmentation verificationsAlexander Chernavin1-10/+36
2020-01-28map: ip4-map-t more RFC compliantVladimir Ratnikov1-8/+20
2020-01-27map: api: fix tag overflow and leakBenoît Ganne2-4/+6
2020-01-10docs: Edit FEATURE.yaml files so they can be publishedJohn DeNisco1-2/+2
2020-01-03map: fix ip4-map-t DF behaviorVladimir Ratnikov1-11/+12
2020-01-03nat: use SVRKlement Sekera2-17/+20
2019-12-14tests: changes for scapy 2.4.3 migrationsnaramre1-1/+2
2019-12-07map: use explicit types in apiOle Troan1-2/+3
2019-12-05map: fix MAP-T ip6 port checkMatthew Smith2-5/+60
2019-12-04map: Fix a coverity MAP dead-code issue.Jon Loeliger1-3/+0
2019-12-03map: Avoid null dereference in 'map show' and 'map del'Jon Loeliger1-12/+22
2019-11-26map: Fix inverted 'map security check enable' CLI flag.Jon Loeliger1-2/+2
2019-11-19map: fix coverity issue 205684Andrew Yourtchenko1-2/+2
2019-11-19map: Fix TCP MSS clamping for MAP-E traffic.Jon Loeliger2-2/+84
2019-11-15tests: Remove the unrequired VPP IP address/prefix class wrappersNeale Ranns1-1/+0
2019-11-11ip: functional interface to ip fragmentationOle Troan5-214/+148
2019-11-06build: add yaml file linting to make checkstylePaul Vinciguerra1-1/+2
2019-11-05misc: Fix python scripts shebang lineRenato Botelho do Couto3-3/+3
2019-10-18map: python3 support in testsOle Troan1-8/+8
2019-10-09map: use ip6-full-reassembly instead of own codeKlement Sekera6-978/+30
2019-10-03map: fix DF[Don't fragment] ip4-map-t behaviourVladimir Ratnikov1-0/+11
2019-10-03map: fix indent-offKlement Sekera1-121/+133
2019-10-01map: use SVR for MAP-TKlement Sekera9-624/+69
">inner), str(self.info.data[IPver])) def checkCapture(self, gre4, isv4): self.pg0.assert_nothing_captured() out = self.pg1.get_capture(len(self.packets)) load = [0] * len(self.ass) self.info = None for p in out: try: asid = 0 gre = None if gre4: ip = p[IP] asid = int(ip.dst.split(".")[3]) self.assertEqual(ip.version, 4) self.assertEqual(ip.flags, 0) self.assertEqual(ip.src, "39.40.41.42") self.assertEqual(ip.dst, "10.0.0.%u" % asid) self.assertEqual(ip.proto, 47) self.assertEqual(len(ip.options), 0) self.assertGreaterEqual(ip.ttl, 64) gre = p[GRE] else: ip = p[IPv6] asid = ip.dst.split(":") asid = asid[len(asid) - 1] asid = 0 if asid == "" else int(asid) self.assertEqual(ip.version, 6) self.assertEqual(ip.tc, 0) self.assertEqual(ip.fl, 0) self.assertEqual(ip.src, "2004::1") self.assertEqual( socket.inet_pton(socket.AF_INET6, ip.dst), socket.inet_pton(socket.AF_INET6, "2002::%u" % asid) ) self.assertEqual(ip.nh, 47) self.assertGreaterEqual(ip.hlim, 64) # self.assertEqual(len(ip.options), 0) gre = GRE(str(p[IPv6].payload)) self.checkInner(gre, isv4) load[asid] += 1 except: self.logger.error(ppp("Unexpected or invalid packet:", p)) raise # This is just to roughly check that the balancing algorithm # is not completly biased. for asid in self.ass: if load[asid] < len(self.packets) / (len(self.ass) * 2): self.log( "ASS is not balanced: load[%d] = %d" % (asid, load[asid])) raise Exception("Load Balancer algorithm is biased") def test_lb_ip4_gre4(self): """ Load Balancer IP4 GRE4 """ try: self.vapi.cli("lb vip 90.0.0.0/8 encap gre4") for asid in self.ass: self.vapi.cli("lb as 90.0.0.0/8 10.0.0.%u" % (asid)) self.pg0.add_stream(self.generatePackets(self.pg0, isv4=True)) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.checkCapture(gre4=True, isv4=True) finally: for asid in self.ass: self.vapi.cli("lb as 90.0.0.0/8 10.0.0.%u del" % (asid)) self.vapi.cli("lb vip 90.0.0.0/8 encap gre4 del") def test_lb_ip6_gre4(self): """ Load Balancer IP6 GRE4 """ try: self.vapi.cli("lb vip 2001::/16 encap gre4") for asid in self.ass: self.vapi.cli("lb as 2001::/16 10.0.0.%u" % (asid)) self.pg0.add_stream(self.generatePackets(self.pg0, isv4=False)) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.checkCapture(gre4=True, isv4=False) finally: for asid in self.ass: self.vapi.cli("lb as 2001::/16 10.0.0.%u del" % (asid)) self.vapi.cli("lb vip 2001::/16 encap gre4 del") def test_lb_ip4_gre6(self): """ Load Balancer IP4 GRE6 """ try: self.vapi.cli("lb vip 90.0.0.0/8 encap gre6") for asid in self.ass: self.vapi.cli("lb as 90.0.0.0/8 2002::%u" % (asid)) self.pg0.add_stream(self.generatePackets(self.pg0, isv4=True)) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.checkCapture(gre4=False, isv4=True) finally: for asid in self.ass: self.vapi.cli("lb as 90.0.0.0/8 2002::%u" % (asid)) self.vapi.cli("lb vip 90.0.0.0/8 encap gre6 del") def test_lb_ip6_gre6(self): """ Load Balancer IP6 GRE6 """ try: self.vapi.cli("lb vip 2001::/16 encap gre6") for asid in self.ass: self.vapi.cli("lb as 2001::/16 2002::%u" % (asid)) self.pg0.add_stream(self.generatePackets(self.pg0, isv4=False)) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.checkCapture(gre4=False, isv4=False) finally: for asid in self.ass: self.vapi.cli("lb as 2001::/16 2002::%u del" % (asid)) self.vapi.cli("lb vip 2001::/16 encap gre6 del")