Seastar
High performance C++ framework for concurrent servers
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Types | Public Member Functions | Public Attributes | List of all members
seastar::net::native_stack_options Struct Reference

Detailed Description

Native stack configuration.

#include <seastar/net/native-stack.hh>

Inheritance diagram for seastar::net::native_stack_options:
seastar::program_options::option_group

Public Types

using value_list_type = boost::intrusive::list< basic_value, boost::intrusive::base_hook< list_base_hook >, boost::intrusive::constant_time_size< false > >
 
using option_group_list_type = boost::intrusive::list< option_group, boost::intrusive::base_hook< list_base_hook >, boost::intrusive::constant_time_size< false > >
 

Public Member Functions

 operator bool () const
 Does the option group has any values contained in it?
 
bool used () const
 
const std::string & name () const
 
const value_list_type & values () const
 
value_list_type & values ()
 
void describe (options_descriptor &descriptor) const
 
void mutate (options_mutator &mutator)
 

Public Attributes

program_options::value< std::string > net_config
 
program_options::value< std::string > net_config_file
 
program_options::value< std::string > tap_device
 Tap device to connect to. More...
 
program_options::value< std::string > host_ipv4_addr
 Static IPv4 address to use. More...
 
program_options::value< std::string > gw_ipv4_addr
 Static IPv4 gateway to use. More...
 
program_options::value< std::string > netmask_ipv4_addr
 Static IPv4 netmask to use. More...
 
program_options::value< int > udpv4_queue_size
 Default size of the UDPv4 per-channel packet queue. More...
 
program_options::value< bool > dhcp
 Use DHCP discovery. More...
 
program_options::value< float > hw_queue_weight
 Weighing of a hardware network queue relative to a software queue. More...
 
program_options::value dpdk_pmd
 Use DPDK PMD drivers. More...
 
program_options::value< std::string > lro
 Enable LRO (on/off). More...
 
virtio_options virtio_opts
 Virtio configuration.
 
dpdk_options dpdk_opts
 

Member Function Documentation

◆ describe()

void seastar::program_options::option_group::describe ( options_descriptor descriptor) const
inherited

Describe the content of this option group to the visitor.

The content is visited in a depth-first manner:

  • First the option groups itself is visited with options_descriptor::visit_group_start(). If this returns false the entire content of the group, including all its subgroups and values are skipped and options_descriptor::visit_group_end() is called immediately. Otherwise visiting the content of the group proceeds.
  • All the values contained therein are visited. For each value the following happens:
    • First options_descriptor::visit_value_metadata() is called with generic metadata that all values have. If this return false the value is skipped, otherwise visiting the value proceeds.
    • Then the appropriate overload of options_descriptor::visit_value() is called, with a pointer to the default value of the respective value. The pointer is null if there is no default value.
    • For selection_value, options_descriptor::visit_selection_value() will be called instead of options_descriptor::visit_value(). After the value is visited, the option_group instance belonging to each candidate (if set) will be visited.
  • All the nested option_group instances in the current group are visited.
  • Finally options_descriptor::visit_group_end() is called.

◆ mutate()

void seastar::program_options::option_group::mutate ( options_mutator mutator)
inherited

Mutate the content of this option group by the visitor.

The visiting algorithm is identical to that of describe(), with the following differences:

  • options_mutator::visit_value() is allowed to mutate the value through the passed-in reference. It should return true if it did so and false otherwise.
  • When visiting a selection value, only the nested group belonging to the selected value is visited afterwards.

Member Data Documentation

◆ dhcp

program_options::value<bool> seastar::net::native_stack_options::dhcp

Use DHCP discovery.

Default: true.

◆ dpdk_opts

dpdk_options seastar::net::native_stack_options::dpdk_opts

DPDK configuration.

Note
Unused when seastar is compiled without DPDK support.

◆ dpdk_pmd

program_options::value seastar::net::native_stack_options::dpdk_pmd

Use DPDK PMD drivers.

Note
Unused when seastar is compiled without DPDK support.

◆ gw_ipv4_addr

program_options::value<std::string> seastar::net::native_stack_options::gw_ipv4_addr

Static IPv4 gateway to use.

Default: 192.168.122.1.

◆ host_ipv4_addr

program_options::value<std::string> seastar::net::native_stack_options::host_ipv4_addr

Static IPv4 address to use.

Default: 192.168.122.2.

◆ hw_queue_weight

program_options::value<float> seastar::net::native_stack_options::hw_queue_weight

Weighing of a hardware network queue relative to a software queue.

Values:

  • 0.0: no work
  • 1.0: equal share

Default: 1.0.

◆ lro

program_options::value<std::string> seastar::net::native_stack_options::lro

Enable LRO (on/off).

Default: on.

◆ netmask_ipv4_addr

program_options::value<std::string> seastar::net::native_stack_options::netmask_ipv4_addr

Static IPv4 netmask to use.

Default: 255.255.255.0.

◆ tap_device

program_options::value<std::string> seastar::net::native_stack_options::tap_device

Tap device to connect to.

Default: tap0.

◆ udpv4_queue_size

program_options::value<int> seastar::net::native_stack_options::udpv4_queue_size

Default size of the UDPv4 per-channel packet queue.

Default: ipv4_udp::default_queue_size.


The documentation for this struct was generated from the following file: