Seastar
High performance C++ framework for concurrent servers
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
config.hh
1/*
2 * This file is open source software, licensed to you under the terms
3 * of the Apache License, Version 2.0 (the "License"). See the NOTICE file
4 * distributed with this work for additional information regarding copyright
5 * ownership. You may not use this file except in compliance with the License.
6 *
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing,
12 * software distributed under the License is distributed on an
13 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 * KIND, either express or implied. See the License for the
15 * specific language governing permissions and limitations
16 * under the License.
17 */
18/*
19 * Copyright 2017 Marek Waszkiewicz ( marek.waszkiewicz77@gmail.com )
20 */
21
22#pragma once
23
24#include <optional>
25#include <istream>
26#include <string>
27#include <unordered_map>
28
29namespace seastar {
30namespace net {
31
32 struct ipv4_config {
33 std::string ip;
34 std::string netmask;
35 std::string gateway;
36 bool dhcp{ false };
37 };
38
39 struct hw_config {
40 std::string pci_address;
41 std::optional<unsigned> port_index;
42 bool lro{ true };
43 bool tso{ true };
44 bool ufo{ true };
45 bool hw_fc{ true };
46 bool event_index{ true };
47 bool csum_offload{ true };
48 std::optional<unsigned> ring_size;
49 };
50
52 ipv4_config ip_cfg;
53 hw_config hw_cfg;
54 };
55
56 std::unordered_map<std::string, device_config> parse_config(std::istream& input);
57
58 class config_exception : public std::runtime_error {
59 public:
60 config_exception(const std::string& msg)
61 : std::runtime_error(msg) {
62 }
63 };
64}
65}
Definition: config.hh:58
Definition: dhcp.hh:37
Definition: config.hh:51
Definition: config.hh:39
Definition: config.hh:32
Seastar API namespace.
Definition: abort_on_ebadf.hh:26