summaryrefslogtreecommitdiff
path: root/src/network/networkd-netdev-tunnel.h
diff options
context:
space:
mode:
authorSusant Sahani <susant@redhat.com>2015-07-21 10:06:44 +0530
committerSusant Sahani <susant@redhat.com>2015-07-21 10:06:44 +0530
commit407af9dd8920e5cf4409b818b974a89bc013d5f8 (patch)
tree97dd44634df08b79feadce4c21fa4b5367e58dad /src/network/networkd-netdev-tunnel.h
parente89f2a98e609c930ad3b7af3ed9710e1216de84c (diff)
networkd: ip6 tunnel add support for flowlabel
Add Pv6 Flow Label support. The 20-bit Flow Label field in the IPv6 header[RFC2460] is used by a node to label packets of a flow.
Diffstat (limited to 'src/network/networkd-netdev-tunnel.h')
-rw-r--r--src/network/networkd-netdev-tunnel.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/network/networkd-netdev-tunnel.h b/src/network/networkd-netdev-tunnel.h
index 546c9f08b9..47981fbe32 100644
--- a/src/network/networkd-netdev-tunnel.h
+++ b/src/network/networkd-netdev-tunnel.h
@@ -33,6 +33,12 @@ typedef enum Ip6TnlMode {
_NETDEV_IP6_TNL_MODE_INVALID = -1,
} Ip6TnlMode;
+typedef enum IPv6FlowLabel {
+ NETDEV_IPV6_FLOWLABEL_INHERIT = 0xFFFFF + 1,
+ _NETDEV_IPV6_FLOWLABEL_MAX,
+ _NETDEV_IPV6_FLOWLABEL_INVALID = -1,
+} IPv6FlowLabel;
+
struct Tunnel {
NetDev meta;
@@ -48,6 +54,7 @@ struct Tunnel {
union in_addr_union remote;
Ip6TnlMode ip6tnl_mode;
+ IPv6FlowLabel ipv6_flowlabel;
bool pmtudisc;
};
@@ -81,3 +88,12 @@ int config_parse_tunnel_address(const char *unit,
const char *rvalue,
void *data,
void *userdata);
+
+const char *ipv6_flowlabel_to_string(IPv6FlowLabel d) _const_;
+IPv6FlowLabel ipv6_flowlabel_from_string(const char *d) _pure_;
+
+int config_parse_ipv6_flowlabel(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);