summaryrefslogtreecommitdiffstats
path: root/docs
AgeCommit message (Expand)AuthorFilesLines
2020-06-03docs: improve handoff queue writeupDave Barach1-0/+196
2020-05-29docs: Minor fixes in publish_docs.sh and sanitizer.rstJohn DeNisco2-0/+2
2020-05-20docs: asan: update doc to match current statusBenoît Ganne1-5/+5
2020-05-07misc: deprecate elftoolDamjan Marion1-1/+1
2020-05-06vppinfra: add timer wheel section to Sphinx docsDave Barach1-0/+117
2020-05-02vlib: add nosyslog unix optionRuslan Babayev1-0/+12
2020-04-28docs: add missing spelling dictionaryPaul Vinciguerra1-0/+774
2020-04-22misc: asan: disable leak sanitizer by defaultBenoît Ganne1-5/+3
2020-04-09docs: Fix the Use Cases IndexJohn DeNisco1-15/+15
2020-04-02docs: Fix venv under python3Paul Vinciguerra5-19/+32
2020-04-02docs: add a timebase precision sectionDave Barach1-0/+20
2020-03-27docs ethernet: add docs for ethernet SectionPaul Vinciguerra1-0/+14
2020-03-27docs: minor typos in configuring/startup.rstPaul Vinciguerra1-2/+2
2020-03-27docs: document lxd container bootstrap procedureDave Barach1-0/+130
2020-03-23docs: add container functional test writeupDave Barach3-1/+512
2020-03-23docs: Fix build on fresh ubuntu 18.04John DeNisco2-14/+23
2020-03-11docs: Add feature build to publish scriptJohn DeNisco2-3/+18
2020-03-11docs: describe clib_time monotonic timebase supportDave Barach1-1/+69
2020-03-09docs: Add list of nodes for 'trace add'Paul Vinciguerra1-0/+22
2020-03-06docs: document the unformat '%_' optionPaul Vinciguerra1-0/+14
2020-02-23vppinfra: deprecate CLIB_VEC64Dave Barach1-3/+1
2020-02-11http_static: VPP web application HowToDave Barach2-1/+275
2020-01-31vppinfra: write up clib_time_tDave Barach1-0/+57
2020-01-24docs: Update the requirements and fix the buildJohn DeNisco4-35/+37
2020-01-23docs: add AddressSanitizer mini-howtoBenoît Ganne2-0/+47
2019-12-18docs: add physmem section in configuration parametersJieqiang Wang1-4/+30
2019-12-18docs: update troubleshooting commandsPaul Vinciguerra1-2/+2
2019-12-17docs: improve compressed core file documentationDave Barach1-5/+15
2019-12-11docs: Rework the startup configuration sectionJohn DeNisco13-1979/+1377
2019-12-05classify: vpp packet tracer supportDave Barach1-3/+10
2019-11-20classify: per-interface rx/tx pcap capture filtersDave Barach1-5/+13
2019-11-12docs: update logging configuration section.Paul Vinciguerra1-10/+10
2019-11-06docs: Rewrite the what is VPP (first) section, also fix the buildJohn DeNisco32-555/+161
2019-11-06docs: add spellcheck to 'make docs' sphinx docsPaul Vinciguerra17-59/+91
2019-10-29docs: Fix warning with sphinx build, add script to publish docsJohn DeNisco2-1/+73
2019-10-28docs: cleanup typos on readthroughPaul Vinciguerra51-102/+101
2019-10-09docs: Add macos build documentationNathan Skrzypczak2-0/+58
2019-10-07docs: grammar police raidDave Barach1-7/+9
2019-10-04docs: add packet-generator writeupDave Barach1-0/+183
2019-09-26misc: add vnet classify filter set supportDave Barach1-7/+20
2019-09-23misc: unify pcap rx / tx / drop traceDave Barach1-8/+16
2019-09-20misc: classifier-based packet trace filterDave Barach1-0/+108
2019-09-11docs: run-sphinx-docs-mergedjdenisco2-3/+3
2019-09-09docs: improve unformat documentationDave Barach1-8/+120
2019-08-26misc: 19.08 new featuresAndrew Yourtchenko2-0/+141
2019-08-08docs: Add Ray's ACL use casejdenisco5-0/+489
2019-08-08api: api socket respect unix runtime directoryOle Troan1-2/+2
2019-08-05docs: Add more quic plugin documentationNathan Skrzypczak4-0/+2
2019-08-01docs: Small fixes and orderingNathan Skrzypczak3-0/+20
2019-07-26docs: add binary api trace replay detailsDave Barach1-7/+81
>) self._test.registry.register(self, self._test.logger) def remove_vpp_config(self): self._test.vapi.bier_table_add_del( self.id, self.mpls_label, 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)