summaryrefslogtreecommitdiffstats
path: root/src/vnet/lisp-gpe
AgeCommit message (Expand)AuthorFilesLines
2017-06-16LISP-GPE: add test CLI for NSHFilip Tehlar2-0/+132
2017-06-16Fix vni/dp_table endianness for gpe iface addition (VPP-882)Florin Coras1-6/+8
2017-06-16Fix gpe_native_fwd_rpaths_get (VPP-883)Florin Coras1-1/+3
2017-06-15Add VAT handlers for LISP-GPE APIFilip Tehlar2-11/+24
2017-06-09Fix gpe coverity issue (VPP-874)Florin Coras1-3/+8
2017-06-08LISP: add NSH supportFilip Tehlar2-4/+7
2017-06-08Add gpe native-forward static route supportFlorin Coras5-16/+402
2017-06-06Fix coverity issueFilip Tehlar1-0/+3
2017-06-05LISP-GPE: return index of newly created fwd entry, VPP-868Filip Tehlar4-2/+20
2017-06-05LISP: fix GPE entry dump, VPP-871Filip Tehlar1-5/+5
2017-05-26LISP: do not try to delete paths when fwd entry is negativeFilip Tehlar1-4/+7
2017-05-22LISP-GPE: add dump call for VNIs in useFilip Tehlar5-1/+74
2017-05-19Enforce Bridge Domain ID range to match 24-bit VNI rangeJohn Lo1-0/+6
2017-05-10completelly deprecate os_get_cpu_number, replace new occurencesDamjan Marion1-1/+1
2017-05-07Remove L2 GPE interface from bridge when deleting, VPP-833Florin Coras1-0/+6
2017-04-25"autoreply" flag: autogenerate standard xxx_reply_t messagesDave Barach1-44/+4
2017-04-24BD:unify bridge domain creation codeEyal Bari1-4/+3
2017-04-13Remove unsed parameter from fib_table_entry_special_add() (only used in FIB t...Neale Ranns1-2/+1
2017-04-13LISP: make statistics thread safeFilip Tehlar5-41/+65
2017-04-07MPLS McastNeale Ranns1-0/+1
2017-04-07Fix gpe dp args to allow for 32 bit bridge domain ids, VPP-690Florin Coras1-1/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-8/+8
2017-04-05LISP: fix crash when adding a negative forwarding entry, VPP-681Filip Tehlar1-15/+14
2017-04-03Adjacency layout change and move to vnet/adjNeale Ranns1-2/+2
2017-03-29LISP: fix IID in decapFilip Tehlar2-3/+4
2017-03-22LISP: improve DP speedFilip Tehlar3-4/+28
2017-03-21LISP statisticsFilip Tehlar5-22/+199
2017-03-08LISP: fix gpe sub-interface lookupFilip Tehlar1-8/+8
2017-03-02Fix LISP Coverity warningFlorin Coras1-1/+1
2017-03-02VPP-648: CLI Memory leak with invalid parameterBilly McFall1-1/+1
2017-03-01VPP-598: tcp stack initial commitDave Barach3-2/+6
2017-02-27Add GPE CLI/API for setting encap modeFilip Tehlar6-3/+202
2017-02-25Add NSH to GPE decap pathFlorin Coras5-20/+56
2017-02-22VPP-635: CLI Memory leak with invalid parameterBilly McFall2-13/+58
2017-02-21Rename LISP GPE API to GPEFilip Tehlar9-91/+86
2017-02-16Add NSH load-balance and drop DPOFlorin Coras1-4/+4
2017-02-16Fix NSH-LISP interface additionFlorin Coras1-15/+16
2017-02-14Fix coverity issues: ioamShwetha Bhandari1-5/+6
2017-02-13Basic support for LISP-GPE encapsulated NSH packetsFlorin Coras6-12/+543
2017-01-30LISP: add dump calls for GPE entries APIFilip Tehlar4-0/+248
2017-01-16Fix LISP coverity warningFlorin Coras1-0/+1
2017-01-13LISP: Fix gpe APIFilip Tehlar4-135/+79
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion20-0/+6410
lass="n">info) ip = self.getIPv4Flow(pktid) if isv4 else self.getIPv6Flow(pktid) packet = (Ether(dst=src_if.local_mac, src=src_if.remote_mac) / ip / Raw(payload)) self.extend_packet(packet, 128) info.data = packet.copy() pkts.append(packet) return pkts def checkInner(self, gre, isv4): IPver = IP if isv4 else IPv6 self.assertEqual(gre.proto, 0x0800 if isv4 else 0x86DD) self.assertEqual(gre.flags, 0) self.assertEqual(gre.version, 0) inner = IPver(str(gre.payload)) payload_info = self.payload_to_info(str(inner[Raw])) self.info = self.packet_infos[payload_info.index] self.assertEqual(payload_info.src, self.pg0.sw_if_index) self.assertEqual(str(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 del" % (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")