]> git.proxmox.com Git - ceph.git/blame - ceph/src/seastar/include/seastar/net/config.hh
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / seastar / include / seastar / net / config.hh
CommitLineData
11fdf7f2
TL
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 <seastar/util/std-compat.hh>
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;
f67539c2 41 std::optional<unsigned> port_index;
11fdf7f2
TL
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 };
f67539c2 48 std::optional<unsigned> ring_size;
11fdf7f2
TL
49 };
50
51 struct device_config {
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}