aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Expand)AuthorFilesLines
2018-03-16cli: make q work againFlorin Coras1-0/+8
2018-03-16QoS recording and markingNeale Ranns22-18/+1644
2018-03-16Fix a long-latent bi=0 bug in vlib_buffer_add_dataDave Barach3-4/+4
2018-03-16IPv6 ND Router discovery control plane (VPP-1095)Juraj Sloboda6-1/+1032
2018-03-16stats: allow configuring poller delayKlement Sekera4-19/+126
2018-03-16IPSec: fix IPv6 policy deletingMatus Fabian1-1/+1
2018-03-16Fix sample-plugin build on ubuntu 18.04Damjan Marion1-1/+0
2018-03-16IPv6 ND Router discovery data plane (VPP-1095)Juraj Sloboda5-6/+615
2018-03-16session: allow local host bindsFlorin Coras1-4/+4
2018-03-15Update session local address is_ip4 on bind when not globalKeith Burns (alagalah)1-0/+1
2018-03-15tls: add openssl engineFlorin Coras14-190/+1027
2018-03-15Add a helper function to fetch vlib node index for already stacked dposVijayabhaskar Katamreddy2-0/+40
2018-03-15use system provided ccache linksDamjan Marion1-6/+6
2018-03-14IPIP: Also publish the ipip.api.h file.Jon Loeliger1-0/+1
2018-03-14Clean up vpp build bootstrap stepDave Barach2-9/+10
2018-03-14vlib: internal buffer manager reworkDamjan Marion8-284/+190
2018-03-14Prevent calling rte_eth_xstats_get not initialized devSzymon Sliwa1-0/+2
2018-03-14IPIP: Add IP{v4,v6} over IP{v4,v6} configured tunnel support.Ole Troan19-1112/+2188
2018-03-14VCL: Handle epoll HUP events in sock_test_serverDave Wallace1-1/+10
2018-03-14srv6-plugins: fixing documentationFrancois Clad4-201/+254
2018-03-14srv6: minor CLI modificationsFrancois Clad4-15/+14
2018-03-14Improve l2_macs_events API to provide MAC move informationJohn Lo5-10/+24
2018-03-14VOM: acl: Add support for acl ethertype unbind and dumpMohsin Kazmi3-1/+182
2018-03-14At AF_PACKET socket create, do intf bind before rx ring cfg to avoid receivin...Chaoyu Jin1-12/+12
2018-03-13VCL: Fix race condition in event thread functionDave Wallace1-11/+17
2018-03-13SCTP: data retransmission & snd_space fixMarco Varlese3-4/+88
2018-03-13Common form of fib-path reproting in dumpsNeale Ranns10-130/+321
2018-03-13FIB: DVR paths are not considered L3 attachedNeale Ranns1-0/+10
2018-03-13Rationalize plugin symbol error reportingDave Barach3-5/+14
2018-03-13SCTP: cumulative SACK fixMarco Varlese4-15/+44
2018-03-12SPAN: Add 'is_l2" flag to DETAILS response messages.Jon Loeliger3-2/+7
2018-03-12Remove md5.[ch] from vppinfraDave Barach5-535/+2
2018-03-12License text cleanupDave Barach1-0/+13
2018-03-12NAT44: fix nat_not_translate_output_feature in dual loop (VPP-1194)Matus Fabian1-2/+2
2018-03-12NAT44: fix nat_not_translate_output_feature for ICMP (VPP-1191)Matus Fabian1-8/+7
2018-03-11vnet: l2-classify: prefetch (n+2, n+3) rather than (n+1, n+2) inside dual loo...Andrew Yourtchenko2-10/+10
2018-03-11dpdk-input node packet trace intermittent on IP forwading pathJohn Lo1-36/+37
2018-03-10Move the vnet cdp protocol implementation to a pluginDave Barach15-41/+574
2018-03-09Coordinate known Ethernet speeds with Linux kernel and DPDKLee Roberts5-6/+77
2018-03-09Correct address calculation for VPP-1168Lee Roberts2-2/+2
2018-03-09VCL API for external callback for listener/connect eventKeith Burns (alagalah)7-23/+323
2018-03-09dpdk: move DPDK vfio hack to dpdk pluginDamjan Marion4-50/+70
2018-03-09VCL: add event registration to listen session in select()Dave Wallace1-5/+27
2018-03-09when exceed max reass,ahdj0071-6/+12
2018-03-09MPLS Unifom modeNeale Ranns40-599/+1754
2018-03-09ACL: Fix the detail for ethertype whitelistMohsin Kazmi2-3/+3
2018-03-08VCL event handling changesKeith Burns (alagalah)3-1/+27
2018-03-08tls: make tls engines pluggableFlorin Coras7-524/+814
2018-03-08VCL refactoringKeith Burns (alagalah)3-48/+55
2018-03-08VCL: cleanup namespace_secret env-var cfg code.Dave Wallace1-20/+1
lf.assertEqual(rx_ip.dst, tx_ip.dst) if not ip_ttl: # IP processing post pop has decremented the TTL self.assertEqual(rx_ip.ttl + 1, tx_ip.ttl) else: self.assertEqual(rx_ip.ttl, ip_ttl) except: raise def verify_capture_tunneled_ip4(self, src_if, capture, sent, mpls_labels): try: capture = verify_filter(capture, sent) self.assertEqual(len(capture), len(sent)) for i in range(len(capture)): tx = sent[i] rx = capture[i] tx_ip = tx[IP] rx_ip = rx[IP] verify_mpls_stack(self, rx, mpls_labels) self.assertEqual(rx_ip.src, tx_ip.src) self.assertEqual(rx_ip.dst, tx_ip.dst) # IP processing post pop has decremented the TTL self.assertEqual(rx_ip.ttl + 1, tx_ip.ttl) except: raise def test_sr_mpls(self): """ SR MPLS """ # # A simple MPLS xconnect - neos label in label out # route_32_eos = VppMplsRoute(self, 32, 0, [VppRoutePath(self.pg0.remote_ip4, self.pg0.sw_if_index, labels=[VppMplsLabel(32)])]) route_32_eos.add_vpp_config() # # A binding SID with only one label # self.vapi.sr_mpls_policy_add(999, 1, 0, [32]) # # A labeled IP route that resolves thru the binding SID # ip_10_0_0_1 = VppIpRoute(self, "10.0.0.1", 32, [VppRoutePath("0.0.0.0", 0xffffffff, nh_via_label=999, labels=[VppMplsLabel(55)])]) ip_10_0_0_1.add_vpp_config() tx = self.create_stream_ip4(self.pg1, "10.0.0.1") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_labelled_ip4(self.pg0, rx, tx, [VppMplsLabel(32), VppMplsLabel(55)]) # # An unlabeled IP route that resolves thru the binding SID # ip_10_0_0_1 = VppIpRoute(self, "10.0.0.2", 32, [VppRoutePath("0.0.0.0", 0xffffffff, nh_via_label=999)]) ip_10_0_0_1.add_vpp_config() tx = self.create_stream_ip4(self.pg1, "10.0.0.2") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_labelled_ip4(self.pg0, rx, tx, [VppMplsLabel(32)]) self.vapi.sr_mpls_policy_del(999) # # this time the SID has many labels pushed # self.vapi.sr_mpls_policy_add(999, 1, 0, [32, 33, 34]) tx = self.create_stream_ip4(self.pg1, "10.0.0.1") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_labelled_ip4(self.pg0, rx, tx, [VppMplsLabel(32), VppMplsLabel(33), VppMplsLabel(34), VppMplsLabel(55)]) tx = self.create_stream_ip4(self.pg1, "10.0.0.2") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_labelled_ip4(self.pg0, rx, tx, [VppMplsLabel(32), VppMplsLabel(33), VppMplsLabel(34)]) # # Resolve an MPLS tunnel via the SID # mpls_tun = VppMPLSTunnelInterface( self, [VppRoutePath("0.0.0.0", 0xffffffff, nh_via_label=999, labels=[VppMplsLabel(44), VppMplsLabel(46)])]) mpls_tun.add_vpp_config() mpls_tun.admin_up() # # add an unlabelled route through the new tunnel # route_10_0_0_3 = VppIpRoute(self, "10.0.0.3", 32, [VppRoutePath("0.0.0.0", mpls_tun._sw_if_index)]) route_10_0_0_3.add_vpp_config() self.logger.info(self.vapi.cli("sh mpls tun 0")) self.logger.info(self.vapi.cli("sh adj 21")) tx = self.create_stream_ip4(self.pg1, "10.0.0.3") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_tunneled_ip4(self.pg0, rx, tx, [VppMplsLabel(32), VppMplsLabel(33), VppMplsLabel(34), VppMplsLabel(44), VppMplsLabel(46)]) # # add a labelled route through the new tunnel # route_10_0_0_3 = VppIpRoute(self, "10.0.0.4", 32, [VppRoutePath("0.0.0.0", mpls_tun._sw_if_index, labels=[VppMplsLabel(55)])]) route_10_0_0_3.add_vpp_config() tx = self.create_stream_ip4(self.pg1, "10.0.0.4") rx = self.send_and_expect(self.pg1, tx, self.pg0) self.verify_capture_tunneled_ip4(self.pg0, rx, tx, [VppMplsLabel(32), VppMplsLabel(33), VppMplsLabel(34), VppMplsLabel(44), VppMplsLabel(46), VppMplsLabel(55)]) self.vapi.sr_mpls_policy_del(999) if __name__ == '__main__': unittest.main(testRunner=VppTestRunner)