+ def add_dpdk_no_tx_checksum_offload(self):
+ """Add DPDK no-tx-checksum-offload configuration."""
+ path = ['dpdk', 'no-tx-checksum-offload']
+ self.add_config_item(self._nodeconfig, '', path)
+
+ def add_nat(self, value='deterministic'):
+ """Add NAT configuration.
+
+ :param value: NAT mode.
+ :type value: str
+ """
+ path = ['nat']
+ 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 = ['tcp', '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 = ['tcp', 'preallocated-half-open-connections']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_session_event_queue_length(self, value):
+ """Add session event queue length.
+
+ :param value: Session event queue length.
+ :type value: int
+ """
+ path = ['session', 'event-queue-length']
+ 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 = ['session', '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 = ['session', '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 = ['session', '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 = ['session', '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 = ['session', '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 = ['session', '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 = ['session', 'local-endpoints-table-memory']
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def apply_config(self, filename=None, retries=60, restart_vpp=True):
+ """Generate and apply VPP configuration for node.
+
+ Use data from calls to this class to form a startup.conf file and
+ replace /etc/vpp/startup.conf with it on node.
+
+ :param filename: Startup configuration file name.
+ :param retries: Number of times (default 60) to re-try waiting.
+ :param restart_vpp: Whether to restart VPP.
+ :type filename: str
+ :type retries: int
+ :type restart_vpp: bool.
+ :raises RuntimeError: If writing config file failed or restart of VPP
+ failed or backup of VPP startup.conf failed.
+ """
+ self.dump_config(self._nodeconfig)