chiark / gitweb /
log: add an "error" parameter to all low-level logging calls and intrdouce log_error_...
[elogind.git] / src / network / networkd-netdev-bond.h
1 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
3 /***
4   This file is part of systemd.
5
6   Copyright 2014 Tom Gundersen <teg@jklm.no>
7
8   systemd is free software; you can redistribute it and/or modify it
9   under the terms of the GNU Lesser General Public License as published by
10   the Free Software Foundation; either version 2.1 of the License, or
11   (at your option) any later version.
12
13   systemd is distributed in the hope that it will be useful, but
14   WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   Lesser General Public License for more details.
17
18   You should have received a copy of the GNU Lesser General Public License
19   along with systemd; If not, see <http://www.gnu.org/licenses/>.
20 ***/
21
22 #pragma once
23
24 typedef struct Bond Bond;
25
26 #include "networkd-netdev.h"
27
28 typedef enum BondMode {
29         NETDEV_BOND_MODE_BALANCE_RR,
30         NETDEV_BOND_MODE_ACTIVE_BACKUP,
31         NETDEV_BOND_MODE_BALANCE_XOR,
32         NETDEV_BOND_MODE_BROADCAST,
33         NETDEV_BOND_MODE_802_3AD,
34         NETDEV_BOND_MODE_BALANCE_TLB,
35         NETDEV_BOND_MODE_BALANCE_ALB,
36         _NETDEV_BOND_MODE_MAX,
37         _NETDEV_BOND_MODE_INVALID = -1
38 } BondMode;
39
40 typedef enum BondXmitHashPolicy {
41         NETDEV_BOND_XMIT_HASH_POLICY_LAYER2,
42         NETDEV_BOND_XMIT_HASH_POLICY_LAYER34,
43         NETDEV_BOND_XMIT_HASH_POLICY_LAYER23,
44         NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23,
45         NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34,
46         _NETDEV_BOND_XMIT_HASH_POLICY_MAX,
47         _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -1
48 } BondXmitHashPolicy;
49
50
51 typedef enum BondLacpRate {
52         NETDEV_BOND_LACP_RATE_SLOW,
53         NETDEV_BOND_LACP_RATE_FAST,
54         _NETDEV_BOND_LACP_RATE_MAX,
55         _NETDEV_BOND_LACP_RATE_INVALID = -1,
56 } BondLacpRate;
57
58 struct Bond {
59         NetDev meta;
60
61         BondMode mode;
62         BondXmitHashPolicy xmit_hash_policy;
63         BondLacpRate lacp_rate;
64
65         usec_t miimon;
66         usec_t updelay;
67         usec_t downdelay;
68 };
69
70 extern const NetDevVTable bond_vtable;
71
72 const char *bond_mode_to_string(BondMode d) _const_;
73 BondMode bond_mode_from_string(const char *d) _pure_;
74
75 const char *bond_xmit_hash_policy_to_string(BondXmitHashPolicy d) _const_;
76 BondXmitHashPolicy bond_xmit_hash_policy_from_string(const char *d) _pure_;
77
78 const char *bond_lacp_rate_to_string(BondLacpRate d) _const_;
79 BondLacpRate bond_lacp_rate_from_string(const char *d) _pure_;
80
81 int config_parse_bond_mode(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
82 int config_parse_bond_xmit_hash_policy(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
83 int config_parse_bond_lacp_rate(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);