summaryrefslogtreecommitdiffstats
path: root/src/vnet/vxlan-gpe
AgeCommit message (Expand)AuthorFilesLines
2022-05-19api: refactor api data storageDamjan Marion1-2/+2
2022-04-04vppinfra: make _vec_len() read-onlyDamjan Marion1-1/+1
2022-03-30udp: fix inner packet checksum calculation in udp-encapMauro Sardara1-22/+27
2021-11-23vxlan: multiarch optimization of vxlanRay Kinsella1-2/+0
2021-10-21fib: respect mfib entry flags on create with pathsPaul Atkins1-7/+6
2021-10-08vxlan-gpe: add udp-port configuration supportArtem Glazychev5-280/+446
2021-10-06docs: more nitfixesNathan Skrzypczak1-18/+20
2021-06-21vxlan: api cleanupFilip Tehlar1-51/+9
2021-03-19vxlan: add tunnel cache to graph nodeJunfeng Wang2-10/+11
2020-12-14misc: move to new pool_foreach macrosDamjan Marion2-6/+6
2020-10-21misc: minimize dependencies on udp.hFlorin Coras4-1/+4
2020-10-07misc: Purge unused pg includesNeale Ranns1-1/+0
2020-09-04ip: enhance vtep4_check of tunnel by vector wayZhiyong Yang1-12/+32
2020-03-04vxlan: vxlan-gpe/vxlan-gpe.cpi API cleanupJakub Grajciar2-45/+42
2020-03-03geneve gtpu vxlan vxlan-gpe: VRF-aware bypass nodeNick Zavaritsky3-76/+27
2020-02-18misc: fix coverity warningsDave Barach1-1/+1
2020-02-17misc: fix coverity warningsDave Barach1-1/+1
2020-01-06lb: add FEATURE file for lb/pppoe/gtpu/vxlan-gpe/pppoeHongjun Ni1-0/+10
2019-12-17vxlan geneve gtpu: fix short helpPaul Vinciguerra1-1/+1
2019-12-10api: multiple connections per processDave Barach1-1/+1
2019-07-19fib: FIB Entry trackingNeale Ranns1-8/+7
2019-07-03vxlan-gpe: simplify counter codeZhiyong Yang1-22/+10
2019-06-18fib: fib api updatesNeale Ranns1-5/+5
2019-06-04features will register udp ports once configuredJakub Grajciar1-5/+11
2019-05-24vxlan-gpe: improve encap performanceZhiyong Yang1-46/+41
2019-05-22vxlan-gpe: fix CLI document errorZhiyong Yang1-3/+3
2019-03-28Typos. A bunch of typos I've been collecting.Paul Vinciguerra1-1/+1
2019-03-06vxlan*: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar1-33/+44
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach1-2/+2
2018-10-23c11 safe string handling supportDave Barach3-6/+6
2018-09-25L2 BD: introduce a BD interface on which to send UU packetsNeale Ranns1-2/+2
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra3-7/+7
2018-09-06vxlan_gpe: optimize encap performanceZhiyong Yang1-32/+47
2018-08-20vxlan_gpe_encap: fix packet len errorZhiyong Yang1-1/+1
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion1-6/+3
2018-07-11avoid using thread local storage for thread indexDamjan Marion2-2/+2
2018-05-04Harmonize vec/pool_get_aligned object sizes and alignment requestsDave Barach1-0/+3
2018-02-01FIB: Consolidate several copies of fib_ip_proto() into one.Jon Loeliger1-6/+0
2018-01-24Improve tunnel interface creation performanceJohn Lo1-14/+4
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-2/+2
2018-01-13Improve "show xxx tunnel" and "show int addr" outputJohn Lo1-28/+39
2018-01-11api: remove transport specific code from handlersFlorin Coras1-10/+8
2018-01-09api: refactor vlibmemoryFlorin Coras1-2/+2
2018-01-05Unify and cleanup usage of hash_set/unset_mem by various tunnelsJohn Lo1-29/+16
2017-12-13make "test-all" target pass againGabriel Ganne3-2/+11
2017-12-13VPP-1099 Fix create vxlan-gpe tunnel local 10::1 remote 20::1 vni 11 (for ipv6)Swarup Nayak1-0/+1
2017-12-13VPP-275 Coding standards cleanup - vnet/vnet/vxlan-gpesharath reddy5-1268/+1437
2017-11-26FIB: store the node type not the function pointer.Neale Ranns1-2/+0
2017-10-24Add extern to *_main global variable declarations in header files.Dave Wallace1-1/+1
2017-10-09vppapigen: support per-file (major,minor,patch) version stampsDave Barach1-0/+2
span class="k">def __init__(self, test, tbl_id, bp, paths): self._test = test self.tbl_id = tbl_id self.bp = bp self.paths = paths self.encoded_paths = [] for path in self.paths: self.encoded_paths.append(path.encode()) def add_vpp_config(self): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, self.encoded_paths, is_add=1 ) self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, self.encoded_paths, is_add=0 ) def update_paths(self, paths): self.paths = paths self.encoded_paths = [] for path in self.paths: self.encoded_paths.append(path.encode()) self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, self.encoded_paths, is_replace=1 ) def add_path(self, path): self.encoded_paths.append(path.encode()) self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, [path.encode()], is_add=1, is_replace=0 ) self.paths.append(path) self._test.registry.register(self, self._test.logger) def remove_path(self, path): self.encoded_paths.remove(path.encode()) self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, [path.encode()], is_add=0, is_replace=0 ) self.paths.remove(path) def remove_all_paths(self): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, [], is_add=0, is_replace=1 ) self.paths = [] def object_id(self): return "bier-route;[%d:%d:%d:%d]" % ( self.tbl_id.set_id, self.tbl_id.sub_domain_id, self.tbl_id.hdr_len_id, self.bp, ) def query_vpp_config(self): return find_bier_route(self._test, self.tbl_id, self.bp) class VppBierImp(VppObject): """ BIER route """ def __init__(self, test, tbl_id, src, ibytes): self._test = test self.tbl_id = tbl_id self.ibytes = ibytes self.src = src def add_vpp_config(self): res = self._test.vapi.bier_imp_add(self.tbl_id, self.src, self.ibytes) self.bi_index = res.bi_index self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): self._test.vapi.bier_imp_del(self.bi_index) def object_id(self): return "bier-imp;[%d:%d:%d:%d]" % ( self.tbl_id.set_id, self.tbl_id.sub_domain_id, self.tbl_id.hdr_len_id, self.src, ) def query_vpp_config(self): return find_bier_imp(self._test, self.tbl_id, self.src) class VppBierDispTable(VppObject): """ BIER Disposition Table """ def __init__(self, test, id): self._test = test self.id = id def add_vpp_config(self): self._test.vapi.bier_disp_table_add_del(self.id, is_add=1) self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): self._test.vapi.bier_disp_table_add_del(self.id, is_add=0) def object_id(self): return "bier-disp-table;[%d]" % (self.id) def query_vpp_config(self): return find_bier_disp_table(self._test, self.id) class VppBierDispEntry(VppObject): """ BIER Disposition Entry """ def __init__( self, test, tbl_id, bp, payload_proto, nh_proto, nh, nh_tbl, rpf_id=~0 ): self._test = test self.tbl_id = tbl_id self.nh_tbl = nh_tbl self.nh_proto = nh_proto self.bp = bp self.payload_proto = payload_proto self.rpf_id = rpf_id self.nh = socket.inet_pton(socket.AF_INET, nh) def add_vpp_config(self): self._test.vapi.bier_disp_entry_add_del( self.tbl_id, self.bp, self.payload_proto, self.nh_proto, self.nh, self.nh_tbl, self.rpf_id, is_add=1, ) self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): self._test.vapi.bier_disp_entry_add_del( self.tbl_id, self.bp, self.payload_proto, self.nh_proto, self.nh, self.nh_tbl, self.rpf_id, is_add=0, ) def object_id(self): return "bier-disp-entry;[%d:%d]" % (self.tbl_id, self.bp) def query_vpp_config(self): return find_bier_disp_entry(self._test, self.tbl_id, self.bp)