+ def add_ip_heap_size(self, value):
+ """Add IP heap-size configuration.
+
+ :param value: IP Heapsize amount.
+ :type value: str
+ """
+ path = [u"ip", u"heap-size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_statseg_size(self, value):
+ """Add stats segment heap size configuration.
+
+ :param value: Stats heapsize amount.
+ :type value: str
+ """
+ path = [u"statseg", u"size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_statseg_per_node_counters(self, value):
+ """Add stats per-node-counters configuration.
+
+ :param value: "on" to switch the counters on.
+ :type value: str
+ """
+ path = [u"statseg", u"per-node-counters"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_plugin(self, state, *plugins):
+ """Add plugin section for specific plugin(s).
+
+ :param state: State of plugin [enable|disable].
+ :param plugins: Plugin(s) to disable.
+ :type state: str
+ :type plugins: list
+ """
+ for plugin in plugins:
+ path = [u"plugins", f"plugin {plugin}", state]
+ self.add_config_item(self._nodeconfig, u" ", path)
+
+ def add_dpdk_no_multi_seg(self):
+ """Add DPDK no-multi-seg configuration."""
+ path = [u"dpdk", u"no-multi-seg"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
+ def add_dpdk_no_tx_checksum_offload(self):
+ """Add DPDK no-tx-checksum-offload configuration."""
+ path = [u"dpdk", u"no-tx-checksum-offload"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
+ def add_nat(self, value=u"deterministic"):
+ """Add NAT configuration.
+
+ :param value: NAT mode.
+ :type value: str
+ """
+ path = [u"nat"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_nsim_poll_main_thread(self):
+ """Add NSIM poll-main-thread configuration."""
+ path = [u"nsim", u"poll-main-thread"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
+ def add_tcp_congestion_control_algorithm(self, value=u"cubic"):
+ """Add TCP congestion control algorithm.
+
+ :param value: The congestion control algorithm to use. Example: cubic
+ :type value: str
+ """
+ path = [u"tcp", u"cc-algo"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_tcp_preallocated_connections(self, value):
+ """Add TCP pre-allocated connections.
+
+ :param value: The number of pre-allocated connections.
+ :type value: int
+ """
+ path = [u"tcp", u"preallocated-connections"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_tcp_preallocated_half_open_connections(self, value):
+ """Add TCP pre-allocated half open connections.
+
+ :param value: The number of pre-allocated half open connections.
+ :type value: int
+ """
+ path = [u"tcp", u"preallocated-half-open-connections"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_enable(self):
+ """Add session enable."""
+ path = [u"session", u"enable"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
+ def add_session_event_queues_memfd_segment(self):
+ """Add session event queue memfd segment."""
+ path = [u"session", u"evt_qs_memfd_seg"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
+ def add_session_event_queue_length(self, value):
+ """Add session event queue length.
+
+ :param value: Session event queue length.
+ :type value: int
+ """
+ path = [u"session", u"event-queue-length"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_event_queues_segment_size(self, value):
+ """Add session event queue length.
+
+ :param value: Session event queue segment size.
+ :type value: str
+ """
+ path = [u"session", u"evt_qs_seg_size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_preallocated_sessions(self, value):
+ """Add the number of pre-allocated sessions.
+
+ :param value: Number of pre-allocated sessions.
+ :type value: int
+ """
+ path = [u"session", u"preallocated-sessions"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_v4_session_table_buckets(self, value):
+ """Add number of v4 session table buckets to the config.
+
+ :param value: Number of v4 session table buckets.
+ :type value: int
+ """
+ path = [u"session", u"v4-session-table-buckets"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_v4_session_table_memory(self, value):
+ """Add the size of v4 session table memory.
+
+ :param value: Size of v4 session table memory.
+ :type value: str
+ """
+ path = [u"session", u"v4-session-table-memory"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_v4_halfopen_table_buckets(self, value):
+ """Add the number of v4 halfopen table buckets.
+
+ :param value: Number of v4 halfopen table buckets.
+ :type value: int
+ """
+ path = [u"session", u"v4-halfopen-table-buckets"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_v4_halfopen_table_memory(self, value):
+ """Add the size of v4 halfopen table memory.
+
+ :param value: Size of v4 halfopen table memory.
+ :type value: str
+ """
+ path = [u"session", u"v4-halfopen-table-memory"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_local_endpoints_table_buckets(self, value):
+ """Add the number of local endpoints table buckets.
+
+ :param value: Number of local endpoints table buckets.
+ :type value: int
+ """
+ path = [u"session", u"local-endpoints-table-buckets"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_local_endpoints_table_memory(self, value):
+ """Add the size of local endpoints table memory.
+
+ :param value: Size of local endpoints table memory.
+ :type value: str
+ """
+ path = [u"session", u"local-endpoints-table-memory"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def write_config(self, filename=None):
+ """Generate and write VPP startup configuration to file.