Seastar
High performance C++ framework for concurrent servers
Public Types | Public Member Functions | Public Attributes | List of all members
seastar::net::virtio_options Struct Reference

Detailed Description

Virtio configuration.

#include <seastar/net/virtio.hh>

Inheritance diagram for seastar::net::virtio_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 > event_index
 Enable event-index feature (on / off). More...
 
program_options::value< std::string > csum_offload
 Enable checksum offload feature (on / off). More...
 
program_options::value< std::string > tso
 Enable TCP segment offload feature (on / off). More...
 
program_options::value< std::string > ufo
 Enable UDP fragmentation offload feature (on / off). More...
 
program_options::value< unsigned > virtio_ring_size
 Virtio ring size (must be power-of-two). More...
 

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

◆ csum_offload

program_options::value<std::string> seastar::net::virtio_options::csum_offload

Enable checksum offload feature (on / off).

Default: on.

◆ event_index

program_options::value<std::string> seastar::net::virtio_options::event_index

Enable event-index feature (on / off).

Default: on.

◆ tso

program_options::value<std::string> seastar::net::virtio_options::tso

Enable TCP segment offload feature (on / off).

Default: on.

◆ ufo

program_options::value<std::string> seastar::net::virtio_options::ufo

Enable UDP fragmentation offload feature (on / off).

Default: on.

◆ virtio_ring_size

program_options::value<unsigned> seastar::net::virtio_options::virtio_ring_size

Virtio ring size (must be power-of-two).

Default: 256.


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