aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Expand)AuthorFilesLines
2019-03-28IPSEC: run encrpyt as a feautre on the tunnelNeale Ranns7-156/+331
2019-03-28Typos. A bunch of typos I've been collecting.Paul Vinciguerra60-132/+133
2019-03-27GBP: fixes for l3-out routingNeale Ranns4-9/+48
2019-03-27ipsec: compress ipsec_sa_t so data used by dataplane code fits in cachelineDamjan Marion16-118/+164
2019-03-27tcp: add cc algo lookup tableFlorin Coras2-7/+17
2019-03-26FIB: do debug before remvoing last sourceNeale Ranns1-2/+2
2019-03-26ADJ: midchain delegate to performing stackingNeale Ranns11-211/+267
2019-03-26IPSEC: more expressive API errorsNeale Ranns3-8/+10
2019-03-26node: vector must be checked with vec_headerKingwel Xie1-1/+1
2019-03-26crypto: add set crypto handler CLIFilip Tehlar3-8/+135
2019-03-26perfmon: fix pmc hw indices out-dated when multiple pmcSu Wang1-3/+15
2019-03-26ip6-rewrite: bug fix buffer->error in dual loopKingwel Xie2-5/+24
2019-03-26ipsec: esp-encrypt reworkDamjan Marion10-242/+499
2019-03-26Convert GRE nodes to new buffer APIs and multiarchBenoît Ganne4-618/+594
2019-03-26Simplify adjacency rewrite codeBenoît Ganne5-172/+100
2019-03-26IPSEC: improved policy deleteNeale Ranns1-13/+9
2019-03-25VCL: add TLS opt to socket_test.shDave Wallace2-6/+6
2019-03-25tls: make first segment and fifo size configurableFlorin Coras2-5/+14
2019-03-25IPSEC tests fnd fix or Extended Sequence NumbersNeale Ranns3-15/+14
2019-03-25UDP: Fix session registration in lookup tableAloys Augustin1-0/+4
2019-03-25add api trace printezkexma1-1/+16
2019-03-25Fix unformat proto UDPC / UDP conflictNathan Skrzypczak1-4/+4
2019-03-25vxlan-gbp: Add api custom-dumpMohsin Kazmi1-0/+52
2019-03-23tcp: make default mtu configurableFlorin Coras3-7/+10
2019-03-22acl-plugin: get rid of doubly-linked list fields in hash applied ACEsAndrew Yourtchenko2-99/+35
2019-03-22acl-plugin: tuplemerge: fix a crash during soak test with split partitionAndrew Yourtchenko1-7/+11
2019-03-22acl-plugin: get rid of a separate "count" field in the linear acl structAndrew Yourtchenko4-18/+18
2019-03-22crypto: implement rfc4231 test casesFilip Tehlar4-2/+422
2019-03-22ipv6: vectorized ext header checkDamjan Marion2-10/+35
2019-03-22ADJ: more thorough link up checkNeale Ranns3-7/+25
2019-03-22tcp: improve handling of snd_nxtFlorin Coras5-126/+93
2019-03-22svm/atomics: add clib_atomic_swap_rel_nFlorin Coras2-2/+3
2019-03-22ipsec: fix esn handlingDamjan Marion1-9/+5
2019-03-22IPSEC: test for packet drop on sequence number wrapNeale Ranns3-1/+78
2019-03-22dpdk: do not enable VLAN stripping on Cisco VIC adapters by defaultHyong Youb Kim1-11/+22
2019-03-22vppapigen: allow for enum size other than u32Andrew Yourtchenko2-4/+15
2019-03-22tests: update test_lb.py to use api call lb_conf.Paul Vinciguerra3-7/+16
2019-03-22MAP: Crush Coverity ComplaintJon Loeliger1-1/+1
2019-03-21Ignore SIGTERM during the vpp boot sequenceDave Barach2-12/+17
2019-03-21vec: use memset in vec_resize_allocate_memoryFlorin Coras1-1/+1
2019-03-21session/fifo: make event unset atomicFlorin Coras2-6/+8
2019-03-21BVI InterfaceNeale Ranns8-3/+509
2019-03-21error-drop; print interface by nameNeale Ranns1-1/+2
2019-03-21api trace: cli bug fixezkexma1-2/+2
2019-03-21icmp: bug fix of buffer->errorKingwel Xie2-2/+18
2019-03-21ipsec: add ipv6 support for ipsec tunnel interfaceKingwel Xie8-153/+423
2019-03-20vcl: mark app state as failed if attach failsFlorin Coras1-8/+11
2019-03-20crypto: add hmac truncate optionDamjan Marion3-2/+10
2019-03-20crypto_openssl: call EVP_EncryptFinal_ex only if neededDamjan Marion1-2/+4
2019-03-20IPSEC: Tunnel SA not deletedNeale Ranns1-3/+6
s[0].west, enable=1) self.vapi.sw_interface_set_l2_xconnect(pipes[0].west, self.pg1.sw_if_index, enable=1) # test bi-directional L2 flow pg0<->pg1 p = (Ether(src=self.pg0.remote_mac, dst=self.pg1.remote_mac) / IP(src="1.1.1.1", dst="1.1.1.2") / UDP(sport=1234, dport=1234) / Raw(b'\xa5' * 100)) self.send_and_expect(self.pg0, p * NUM_PKTS, self.pg1) self.send_and_expect(self.pg1, p * NUM_PKTS, self.pg0) # # Attach ACL to ensure features are run on the pipe # rule_1 = AclRule(is_permit=0, proto=17, src_prefix=IPv4Network("1.1.1.1/32"), dst_prefix=IPv4Network("1.1.1.2/32"), ports=1234) acl = VppAcl(self, rules=[rule_1]) acl.add_vpp_config() # Apply the ACL on the pipe on output acl_if_e = VppAclInterface(self, sw_if_index=pipes[0].east, n_input=0, acls=[acl]) acl_if_e.add_vpp_config() self.send_and_assert_no_replies(self.pg0, p * NUM_PKTS) self.send_and_expect(self.pg1, p * NUM_PKTS, self.pg0) # remove from output and apply on input acl_if_e.remove_vpp_config() acl_if_w = VppAclInterface(self, sw_if_index=pipes[0].west, n_input=1, acls=[acl]) acl_if_w.add_vpp_config() self.send_and_assert_no_replies(self.pg0, p * NUM_PKTS) self.send_and_expect(self.pg1, p * NUM_PKTS, self.pg0) acl_if_w.remove_vpp_config() self.send_and_expect(self.pg0, p * NUM_PKTS, self.pg1) self.send_and_expect(self.pg1, p * NUM_PKTS, self.pg0) # # L3 routes in two separate tables so a pipe can be used to L3 # x-connect # tables = [] tables.append(VppIpTable(self, 1)) tables.append(VppIpTable(self, 2)) for t in tables: t.add_vpp_config() self.pg2.set_table_ip4(1) self.pg2.config_ip4() self.pg2.resolve_arp() self.pg3.set_table_ip4(2) self.pg3.config_ip4() self.pg3.resolve_arp() routes = [] routes.append(VppIpRoute(self, "1.1.1.1", 32, [VppRoutePath(self.pg3.remote_ip4, self.pg3.sw_if_index)], table_id=2)) routes.append(VppIpRoute(self, "1.1.1.1", 32, [VppRoutePath("0.0.0.0", pipes[1].east)], table_id=1)) routes.append(VppIpRoute(self, "1.1.1.2", 32, [VppRoutePath("0.0.0.0", pipes[1].west)], table_id=2)) routes.append(VppIpRoute(self, "1.1.1.2", 32, [VppRoutePath(self.pg2.remote_ip4, self.pg2.sw_if_index)], table_id=1)) for r in routes: r.add_vpp_config() p_east = (Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac) / IP(src="1.1.1.2", dst="1.1.1.1") / UDP(sport=1234, dport=1234) / Raw(b'\xa5' * 100)) # bind the pipe ends to the correct tables self.vapi.sw_interface_set_table(pipes[1].west, 0, 2) self.vapi.sw_interface_set_table(pipes[1].east, 0, 1) # IP is not enabled on the pipes at this point self.send_and_assert_no_replies(self.pg2, p_east * NUM_PKTS) # IP enable the Pipes by making them unnumbered pipes[1].set_unnumbered(self.pg2.sw_if_index, True) pipes[1].set_unnumbered(self.pg3.sw_if_index, False) self.send_and_expect(self.pg2, p_east * NUM_PKTS, self.pg3) # and the return path p_west = (Ether(src=self.pg3.remote_mac, dst=self.pg3.local_mac) / IP(src="1.1.1.1", dst="1.1.1.2") / UDP(sport=1234, dport=1234) / Raw(b'\xa5' * 100)) self.send_and_expect(self.pg3, p_west * NUM_PKTS, self.pg2) # # Use ACLs to test features run on the Pipes # acl_if_e1 = VppAclInterface(self, sw_if_index=pipes[1].east, n_input=0, acls=[acl]) acl_if_e1.add_vpp_config() self.send_and_assert_no_replies(self.pg2, p_east * NUM_PKTS) self.send_and_expect(self.pg3, p_west * NUM_PKTS, self.pg2) # remove from output and apply on input acl_if_e1.remove_vpp_config() acl_if_w1 = VppAclInterface(self, sw_if_index=pipes[1].west, n_input=1, acls=[acl]) acl_if_w1.add_vpp_config() self.send_and_assert_no_replies(self.pg2, p_east * NUM_PKTS) self.send_and_expect(self.pg3, p_west * NUM_PKTS, self.pg2) acl_if_w1.remove_vpp_config() self.send_and_expect(self.pg2, p_east * NUM_PKTS, self.pg3) self.send_and_expect(self.pg3, p_west * NUM_PKTS, self.pg2) # cleanup (so the tables delete) self.pg2.unconfig_ip4() self.pg2.set_table_ip4(0) self.pg3.unconfig_ip4() self.pg3.set_table_ip4(0) self.vapi.sw_interface_set_table(pipes[1].west, 0, 0) self.vapi.sw_interface_set_table(pipes[1].east, 0, 0) if __name__ == '__main__': unittest.main(testRunner=VppTestRunner)