summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/session_api.c
AgeCommit message (Expand)AuthorFilesLines
2019-10-09session: Add certificate storeNathan Skrzypczak1-30/+87
2019-08-28session: fix unbind coverity warningFlorin Coras1-0/+7
2019-08-27session: move ctrl messages from bapi to mqFlorin Coras1-26/+138
2019-08-01session: session pool migration notificationFlorin Coras1-0/+8
2019-07-19session: Use parent_handle instead of transport_optsNathan Skrzypczak1-1/+1
2019-07-08session: add flag to disable session lookupNathan Skrzypczak1-0/+1
2019-06-17session: use listener_handle instead of listener_indexNathan Skrzypczak1-2/+2
2019-06-12session: use session handles as app listener handlesFlorin Coras1-5/+2
2019-05-16Add transport_opts to connect_sock bapiNathan Skrzypczak1-1/+2
2019-05-07add TLS endpoint functionYu Ping1-5/+6
2019-04-25session: cleanup segment manager and fifo segmentFlorin Coras1-1/+1
2019-04-25session: use teps in accept/connect notificationsFlorin Coras1-8/+6
2019-04-24Add get_endpoint in transport vftAloys Augustin1-10/+7
2019-04-08fixing typosJim Thompson1-1/+1
2019-03-07session: use transport custom tx for app transportsFlorin Coras1-9/+0
2019-03-06session: use vpp to switch io events for ct sessionsFlorin Coras1-69/+18
2019-03-02session: remove deprecated binary apisFlorin Coras1-333/+12
2019-03-02session: cleanup/rename functionsFlorin Coras1-23/+23
2019-03-01session: refactor local connectsFlorin Coras1-70/+48
2019-02-27session: refactor local/cut-through listensFlorin Coras1-50/+16
2019-02-26session: fix local bindsFlorin Coras1-1/+3
2019-02-23session: separate local session logicFlorin Coras1-0/+1
2019-02-21vcl/session: send unlisten over message queueFlorin Coras1-1/+30
2019-02-15Fix connexion segfault in session api affecting tcp_echoNathan Skrzypczak1-1/+2
2019-02-11session: cleanup application interfaceFlorin Coras1-50/+20
2019-02-09session: refactor listen logicFlorin Coras1-34/+31
2019-02-06transport: cleanupFlorin Coras1-6/+4
2019-02-05session: cleanup part 2Florin Coras1-2/+2
2019-02-04session: cleanup part 1Florin Coras1-40/+40
2019-01-27session: properly initialize accepted/connected msgsFlorin Coras1-0/+2
2019-01-24session/vcl: support worker ownership change for listenersFlorin Coras1-2/+3
2019-01-17vcl/session: replicate events for shared sessionsFlorin Coras1-33/+52
2018-12-19session: handle close before app accept replyFlorin Coras1-0/+1
2018-12-05session/tcp: postpone cleanup on resetFlorin Coras1-1/+4
2018-12-04vcl: test refactor and improvementsFlorin Coras1-1/+4
2018-11-30vcl: wait for segments with segment handleFlorin Coras1-0/+1
2018-11-30session: segment handle in accept/connect notificationsFlorin Coras1-6/+12
2018-11-21session: improve app cliFlorin Coras1-2/+2
2018-11-21session: cleanup use of api_client_indexFlorin Coras1-31/+21
2018-11-18vcl/session: apps with process workersFlorin Coras1-0/+3
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach1-18/+20
2018-10-28session: extend connect api for internal appsFlorin Coras1-2/+2
2018-10-23c11 safe string handling supportDave Barach1-24/+24
2018-10-16vcl: fix bidirectional tests (VPP-1455)Florin Coras1-24/+24
2018-10-12session: don't wait indefinitely for apps to consume evts (VPP-1454)Florin Coras1-10/+28
2018-09-29session: lock msg queues while generating control eventsFlorin Coras1-12/+6
2018-09-12vcl: improve read and fifo event handlingFlorin Coras1-0/+1
2018-09-08vcl: set worker pthread stop keyFlorin Coras1-1/+1
2018-09-07vcl: refactor test client to support workersFlorin Coras1-1/+1
2018-09-06vcl/session/svm: fix coverity warningsFlorin Coras1-3/+3
, 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)