aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet
AgeCommit message (Expand)AuthorFilesLines
2018-08-15Remove client_index field from replies in APIOndrej Fabry7-16/+1
2018-08-14Fix context field position in API definitionOndrej Fabry2-2/+2
2018-08-14neighbor advertisement must with target_link optionahdj0071-0/+2
2018-08-13classify_add_del_session API: Use more descriptive docstring (VPP-1385)Juraj Sloboda1-1/+4
2018-08-13Multiarch for ip4 forwarding nodesDamjan Marion1-59/+49
2018-08-13Multiarch handling in different constructor macrosDamjan Marion7-25/+30
2018-08-11Multiversioning: Device (tx) function constructorMohsin Kazmi3-18/+45
2018-08-10IP fragmentation buffer chains, part 2.Ole Troan1-19/+21
2018-08-10vcl: support for eventfd mq signalingFlorin Coras9-69/+249
2018-08-10IP fragmentation to handle buffer chains.Ole Troan3-84/+120
2018-08-10VPP-1382: Fix ip6 address cann't display completely when show ip6 neighborsshubing guo1-2/+2
2018-08-10Use IP address types on UDP encap APINeale Ranns9-112/+297
2018-08-10Use the bihash walk functionNeale Ranns1-126/+130
2018-08-09Fix L2 flooding to BVI with error return not workingJohn Lo1-4/+3
2018-08-09Thread-safe ARP / ND throttlingDave Barach6-75/+103
2018-08-09bfd:fix NULL session free/putEyal Bari1-1/+0
2018-08-09Fix "Old Style VLA" build warningsJuraj Sloboda2-7/+36
2018-08-07Fix dangling reference in l2fib_scan(...)Dave Barach1-0/+8
2018-08-06re-indent UDP encap documentationNeale Ranns1-31/+34
2018-08-04socket api: multiple fds in one msgFlorin Coras1-1/+2
2018-08-03ipsec: add udp-encap option to debug cli commandsRadu Nicolau5-10/+17
2018-08-03loop counter to prevent infiinte number of look ups per-packetNeale Ranns5-3/+99
2018-08-03Documentation fix on "set interface ip[6] table"Yichen Wang1-2/+2
2018-08-01vxlan:optimize cached entry compareEyal Bari1-9/+5
2018-07-31vxlan:decap.c conform coding styleEyal Bari1-620/+690
2018-07-31fix 'sh vxlan tunnels'Neale Ranns1-15/+4
2018-07-31vcl: add read/write udp supportFlorin Coras4-21/+38
2018-07-30SIXRD: fix post introduction of the directed subnet broadcastNeale Ranns2-12/+4
2018-07-30FIB: return entry prefix by const reference to avoid the copyNeale Ranns11-74/+56
2018-07-30Reverse the logic of flagging malformed packet in fragmentation code to allow...Rajesh Saluja1-1/+1
2018-07-28session/dlmalloc: coverity fixesFlorin Coras1-1/+1
2018-07-27vcl: use events for epoll/select/read/writeFlorin Coras9-32/+46
2018-07-27Fix memory leak in processing of ICMPv6 RA event (VPP-1360)Juraj Sloboda1-1/+2
2018-07-26Clean up dpdk plugin rx/tx pcap tracingDave Barach2-0/+6
2018-07-26L2 Flood: use the buffer clone API rather than buffer recycleNeale Ranns1-260/+168
2018-07-24Create a unit-test pluginDave Barach1-1779/+0
2018-07-23session: send rx events only if session readyFlorin Coras2-2/+9
2018-07-23L2 EFP: byteswap sw_if_index, enable flag can be u8 on .apiNeale Ranns3-4/+7
2018-07-23Update pipeline.h: use vlib_get_buffersDave Barach3-329/+215
2018-07-23fix vector index range checksEyal Bari8-8/+8
2018-07-21Loopback tx: support multiple tx intfcs per frameDave Barach1-153/+197
2018-07-21fix IP directed broadcast node declarationsMatthew Smith2-2/+2
2018-07-20Add congestion drop in interface handoffDamjan Marion1-3/+27
2018-07-20QOS: mark/record fix feature ordering c-n-p errorNeale Ranns1-5/+5
2018-07-20IP directed broadcastNeale Ranns15-29/+279
2018-07-20QoS: marking and recording for MPLS and VLANNeale Ranns3-18/+267
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion19-76/+42
2018-07-19session: coverity warningsFlorin Coras1-8/+10
2018-07-19Add a new communication channel between VPP and openssl enginePing Yu1-1/+1
2018-07-19Cleanup of handoff codeDamjan Marion5-341/+24
s="n">is_add=0) def __str__(self): return self.object_id() def object_id(self): return "bier-table;[%d:%d:%d]" % (self.id.set_id, self.id.sub_domain_id, self.id.hdr_len_id) def query_vpp_config(self): return find_bier_table(self._test, self.id) class VppBierRoute(VppObject): """ BIER route """ def __init__(self, test, tbl_id, bp, paths): self._test = test self.tbl_id = tbl_id self.bp = bp self.paths = paths def encode_path(self, p): lstack = [] for l in p.nh_labels: if type(l) == VppMplsLabel: lstack.append(l.encode()) else: lstack.append({'label': l, 'ttl': 255}) n_labels = len(lstack) while (len(lstack) < 16): lstack.append({}) return {'next_hop': p.nh_addr, 'weight': 1, 'afi': p.proto, 'sw_if_index': 0xffffffff, 'preference': 0, 'table_id': p.nh_table_id, 'next_hop_id': p.next_hop_id, 'is_udp_encap': p.is_udp_encap, 'n_labels': n_labels, 'label_stack': lstack} def encode_paths(self): br_paths = [] for p in self.paths: br_paths.append(self.encode_path(p)) return br_paths def add_vpp_config(self): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, self.encode_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.encode_paths(), is_add=0) def update_paths(self, paths): self.paths = paths self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, self.encode_paths(), is_replace=1) def add_path(self, path): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, [self.encode_path(path)], is_add=1, is_replace=0) self.paths.append(path) self._test.registry.register(self, self._test.logger) def remove_path(self, path): self._test.vapi.bier_route_add_del( self.tbl_id, self.bp, [self.encode_path(path)], 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 __str__(self): return self.object_id() 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 __str__(self): return self.object_id() 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 __str__(self): return self.object_id() 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 __str__(self): return self.object_id() 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)