LCOV - code coverage report
Current view: top level - network/netdev - bond.h (source / functions) Hit Total Coverage
Test: systemd_full.info Lines: 0 1 0.0 %
Date: 2019-08-23 13:36:53 Functions: 0 1 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 6 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: LGPL-2.1+ */
       2                 :            : #pragma once
       3                 :            : 
       4                 :            : #include <netinet/in.h>
       5                 :            : #include <linux/if_bonding.h>
       6                 :            : 
       7                 :            : #include "in-addr-util.h"
       8                 :            : #include "netdev.h"
       9                 :            : #include "ordered-set.h"
      10                 :            : 
      11                 :            : /*
      12                 :            :  * Maximum number of targets supported by the kernel for a single
      13                 :            :  * bond netdev.
      14                 :            :  */
      15                 :            : #define NETDEV_BOND_ARP_TARGETS_MAX 16
      16                 :            : 
      17                 :            : typedef enum BondMode {
      18                 :            :         NETDEV_BOND_MODE_BALANCE_RR    = BOND_MODE_ROUNDROBIN,
      19                 :            :         NETDEV_BOND_MODE_ACTIVE_BACKUP = BOND_MODE_ACTIVEBACKUP,
      20                 :            :         NETDEV_BOND_MODE_BALANCE_XOR   = BOND_MODE_XOR,
      21                 :            :         NETDEV_BOND_MODE_BROADCAST     = BOND_MODE_BROADCAST,
      22                 :            :         NETDEV_BOND_MODE_802_3AD       = BOND_MODE_8023AD,
      23                 :            :         NETDEV_BOND_MODE_BALANCE_TLB   = BOND_MODE_TLB,
      24                 :            :         NETDEV_BOND_MODE_BALANCE_ALB   = BOND_MODE_ALB,
      25                 :            :         _NETDEV_BOND_MODE_MAX,
      26                 :            :         _NETDEV_BOND_MODE_INVALID      = -1
      27                 :            : } BondMode;
      28                 :            : 
      29                 :            : typedef enum BondXmitHashPolicy {
      30                 :            :         NETDEV_BOND_XMIT_HASH_POLICY_LAYER2   = BOND_XMIT_POLICY_LAYER2,
      31                 :            :         NETDEV_BOND_XMIT_HASH_POLICY_LAYER34  = BOND_XMIT_POLICY_LAYER34,
      32                 :            :         NETDEV_BOND_XMIT_HASH_POLICY_LAYER23  = BOND_XMIT_POLICY_LAYER23,
      33                 :            :         NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23  = BOND_XMIT_POLICY_ENCAP23,
      34                 :            :         NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34  = BOND_XMIT_POLICY_ENCAP34,
      35                 :            :         _NETDEV_BOND_XMIT_HASH_POLICY_MAX,
      36                 :            :         _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -1
      37                 :            : } BondXmitHashPolicy;
      38                 :            : 
      39                 :            : typedef enum BondLacpRate {
      40                 :            :         NETDEV_BOND_LACP_RATE_SLOW,
      41                 :            :         NETDEV_BOND_LACP_RATE_FAST,
      42                 :            :         _NETDEV_BOND_LACP_RATE_MAX,
      43                 :            :         _NETDEV_BOND_LACP_RATE_INVALID = -1,
      44                 :            : } BondLacpRate;
      45                 :            : 
      46                 :            : typedef enum BondAdSelect {
      47                 :            :         NETDEV_BOND_AD_SELECT_STABLE,
      48                 :            :         NETDEV_BOND_AD_SELECT_BANDWIDTH,
      49                 :            :         NETDEV_BOND_AD_SELECT_COUNT,
      50                 :            :         _NETDEV_BOND_AD_SELECT_MAX,
      51                 :            :         _NETDEV_BOND_AD_SELECT_INVALID = -1,
      52                 :            : } BondAdSelect;
      53                 :            : 
      54                 :            : typedef enum BondFailOverMac {
      55                 :            :         NETDEV_BOND_FAIL_OVER_MAC_NONE,
      56                 :            :         NETDEV_BOND_FAIL_OVER_MAC_ACTIVE,
      57                 :            :         NETDEV_BOND_FAIL_OVER_MAC_FOLLOW,
      58                 :            :         _NETDEV_BOND_FAIL_OVER_MAC_MAX,
      59                 :            :         _NETDEV_BOND_FAIL_OVER_MAC_INVALID = -1,
      60                 :            : } BondFailOverMac;
      61                 :            : 
      62                 :            : typedef enum BondArpValidate {
      63                 :            :         NETDEV_BOND_ARP_VALIDATE_NONE,
      64                 :            :         NETDEV_BOND_ARP_VALIDATE_ACTIVE,
      65                 :            :         NETDEV_BOND_ARP_VALIDATE_BACKUP,
      66                 :            :         NETDEV_BOND_ARP_VALIDATE_ALL,
      67                 :            :         _NETDEV_BOND_ARP_VALIDATE_MAX,
      68                 :            :         _NETDEV_BOND_ARP_VALIDATE_INVALID = -1,
      69                 :            : } BondArpValidate;
      70                 :            : 
      71                 :            : typedef enum BondArpAllTargets {
      72                 :            :         NETDEV_BOND_ARP_ALL_TARGETS_ANY,
      73                 :            :         NETDEV_BOND_ARP_ALL_TARGETS_ALL,
      74                 :            :         _NETDEV_BOND_ARP_ALL_TARGETS_MAX,
      75                 :            :         _NETDEV_BOND_ARP_ALL_TARGETS_INVALID = -1,
      76                 :            : } BondArpAllTargets;
      77                 :            : 
      78                 :            : typedef enum BondPrimaryReselect {
      79                 :            :         NETDEV_BOND_PRIMARY_RESELECT_ALWAYS,
      80                 :            :         NETDEV_BOND_PRIMARY_RESELECT_BETTER,
      81                 :            :         NETDEV_BOND_PRIMARY_RESELECT_FAILURE,
      82                 :            :         _NETDEV_BOND_PRIMARY_RESELECT_MAX,
      83                 :            :         _NETDEV_BOND_PRIMARY_RESELECT_INVALID = -1,
      84                 :            : } BondPrimaryReselect;
      85                 :            : 
      86                 :            : typedef struct Bond {
      87                 :            :         NetDev meta;
      88                 :            : 
      89                 :            :         BondMode mode;
      90                 :            :         BondXmitHashPolicy xmit_hash_policy;
      91                 :            :         BondLacpRate lacp_rate;
      92                 :            :         BondAdSelect ad_select;
      93                 :            :         BondFailOverMac fail_over_mac;
      94                 :            :         BondArpValidate arp_validate;
      95                 :            :         BondArpAllTargets arp_all_targets;
      96                 :            :         BondPrimaryReselect primary_reselect;
      97                 :            : 
      98                 :            :         int tlb_dynamic_lb;
      99                 :            : 
     100                 :            :         bool all_slaves_active;
     101                 :            : 
     102                 :            :         unsigned resend_igmp;
     103                 :            :         unsigned packets_per_slave;
     104                 :            :         unsigned num_grat_arp;
     105                 :            :         unsigned min_links;
     106                 :            : 
     107                 :            :         uint16_t ad_actor_sys_prio;
     108                 :            :         uint16_t ad_user_port_key;
     109                 :            :         struct ether_addr ad_actor_system;
     110                 :            : 
     111                 :            :         usec_t miimon;
     112                 :            :         usec_t updelay;
     113                 :            :         usec_t downdelay;
     114                 :            :         usec_t arp_interval;
     115                 :            :         usec_t lp_interval;
     116                 :            : 
     117                 :            :         OrderedSet *arp_ip_targets;
     118                 :            : } Bond;
     119                 :            : 
     120   [ #  #  #  #  :          0 : DEFINE_NETDEV_CAST(BOND, Bond);
                   #  # ]
     121                 :            : extern const NetDevVTable bond_vtable;
     122                 :            : 
     123                 :            : int link_set_bond(Link *link);
     124                 :            : 
     125                 :            : const char *bond_mode_to_string(BondMode d) _const_;
     126                 :            : BondMode bond_mode_from_string(const char *d) _pure_;
     127                 :            : 
     128                 :            : const char *bond_xmit_hash_policy_to_string(BondXmitHashPolicy d) _const_;
     129                 :            : BondXmitHashPolicy bond_xmit_hash_policy_from_string(const char *d) _pure_;
     130                 :            : 
     131                 :            : const char *bond_lacp_rate_to_string(BondLacpRate d) _const_;
     132                 :            : BondLacpRate bond_lacp_rate_from_string(const char *d) _pure_;
     133                 :            : 
     134                 :            : const char *bond_fail_over_mac_to_string(BondFailOverMac d) _const_;
     135                 :            : BondFailOverMac bond_fail_over_mac_from_string(const char *d) _pure_;
     136                 :            : 
     137                 :            : const char *bond_ad_select_to_string(BondAdSelect d) _const_;
     138                 :            : BondAdSelect bond_ad_select_from_string(const char *d) _pure_;
     139                 :            : 
     140                 :            : const char *bond_arp_validate_to_string(BondArpValidate d) _const_;
     141                 :            : BondArpValidate bond_arp_validate_from_string(const char *d) _pure_;
     142                 :            : 
     143                 :            : const char *bond_arp_all_targets_to_string(BondArpAllTargets d) _const_;
     144                 :            : BondArpAllTargets bond_arp_all_targets_from_string(const char *d) _pure_;
     145                 :            : 
     146                 :            : const char *bond_primary_reselect_to_string(BondPrimaryReselect d) _const_;
     147                 :            : BondPrimaryReselect bond_primary_reselect_from_string(const char *d) _pure_;
     148                 :            : 
     149                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_mode);
     150                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_xmit_hash_policy);
     151                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_lacp_rate);
     152                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_ad_select);
     153                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_fail_over_mac);
     154                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_arp_validate);
     155                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_arp_all_targets);
     156                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_bond_primary_reselect);
     157                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_arp_ip_target_address);
     158                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_ad_actor_sys_prio);
     159                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_ad_user_port_key);
     160                 :            : CONFIG_PARSER_PROTOTYPE(config_parse_ad_actor_system);

Generated by: LCOV version 1.14