LCOV - code coverage report
Current view: top level - network/netdev - tunnel.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 0 10 0.0 %
Date: 2019-08-22 15:41:25 Functions: 0 10 0.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: LGPL-2.1+ */
       2             : #pragma once
       3             : 
       4             : #include "in-addr-util.h"
       5             : 
       6             : #include "conf-parser.h"
       7             : #include "netdev/netdev.h"
       8             : #include "netdev/fou-tunnel.h"
       9             : 
      10             : typedef enum Ip6TnlMode {
      11             :         NETDEV_IP6_TNL_MODE_IP6IP6,
      12             :         NETDEV_IP6_TNL_MODE_IPIP6,
      13             :         NETDEV_IP6_TNL_MODE_ANYIP6,
      14             :         _NETDEV_IP6_TNL_MODE_MAX,
      15             :         _NETDEV_IP6_TNL_MODE_INVALID = -1,
      16             : } Ip6TnlMode;
      17             : 
      18             : typedef enum IPv6FlowLabel {
      19             :         NETDEV_IPV6_FLOWLABEL_INHERIT = 0xFFFFF + 1,
      20             :         _NETDEV_IPV6_FLOWLABEL_MAX,
      21             :         _NETDEV_IPV6_FLOWLABEL_INVALID = -1,
      22             : } IPv6FlowLabel;
      23             : 
      24             : typedef struct Tunnel {
      25             :         NetDev meta;
      26             : 
      27             :         uint8_t encap_limit;
      28             : 
      29             :         int family;
      30             :         int ipv6_flowlabel;
      31             :         int allow_localremote;
      32             :         int gre_erspan_sequence;
      33             :         int isatap;
      34             : 
      35             :         unsigned ttl;
      36             :         unsigned tos;
      37             :         unsigned flags;
      38             : 
      39             :         uint32_t key;
      40             :         uint32_t ikey;
      41             :         uint32_t okey;
      42             :         uint32_t erspan_index;
      43             : 
      44             :         union in_addr_union local;
      45             :         union in_addr_union remote;
      46             : 
      47             :         Ip6TnlMode ip6tnl_mode;
      48             :         FooOverUDPEncapType fou_encap_type;
      49             : 
      50             :         bool pmtudisc;
      51             :         bool copy_dscp;
      52             :         bool independent;
      53             :         bool fou_tunnel;
      54             :         bool assign_to_loopback;
      55             : 
      56             :         uint16_t encap_src_port;
      57             :         uint16_t fou_destination_port;
      58             : 
      59             :         struct in6_addr sixrd_prefix;
      60             :         uint8_t sixrd_prefixlen;
      61             : } Tunnel;
      62             : 
      63           0 : DEFINE_NETDEV_CAST(IPIP, Tunnel);
      64           0 : DEFINE_NETDEV_CAST(GRE, Tunnel);
      65           0 : DEFINE_NETDEV_CAST(GRETAP, Tunnel);
      66           0 : DEFINE_NETDEV_CAST(IP6GRE, Tunnel);
      67           0 : DEFINE_NETDEV_CAST(IP6GRETAP, Tunnel);
      68           0 : DEFINE_NETDEV_CAST(SIT, Tunnel);
      69           0 : DEFINE_NETDEV_CAST(VTI, Tunnel);
      70           0 : DEFINE_NETDEV_CAST(VTI6, Tunnel);
      71           0 : DEFINE_NETDEV_CAST(IP6TNL, Tunnel);
      72           0 : DEFINE_NETDEV_CAST(ERSPAN, Tunnel);
      73             : extern const NetDevVTable ipip_vtable;
      74             : extern const NetDevVTable sit_vtable;
      75             : extern const NetDevVTable vti_vtable;
      76             : extern const NetDevVTable vti6_vtable;
      77             : extern const NetDevVTable gre_vtable;
      78             : extern const NetDevVTable gretap_vtable;
      79             : extern const NetDevVTable ip6gre_vtable;
      80             : extern const NetDevVTable ip6gretap_vtable;
      81             : extern const NetDevVTable ip6tnl_vtable;
      82             : extern const NetDevVTable erspan_vtable;
      83             : 
      84             : const char *ip6tnl_mode_to_string(Ip6TnlMode d) _const_;
      85             : Ip6TnlMode ip6tnl_mode_from_string(const char *d) _pure_;
      86             : 
      87             : CONFIG_PARSER_PROTOTYPE(config_parse_ip6tnl_mode);
      88             : CONFIG_PARSER_PROTOTYPE(config_parse_tunnel_address);
      89             : CONFIG_PARSER_PROTOTYPE(config_parse_ipv6_flowlabel);
      90             : CONFIG_PARSER_PROTOTYPE(config_parse_encap_limit);
      91             : CONFIG_PARSER_PROTOTYPE(config_parse_tunnel_key);
      92             : CONFIG_PARSER_PROTOTYPE(config_parse_6rd_prefix);

Generated by: LCOV version 1.14