summaryrefslogtreecommitdiff
path: root/src/network/netdev/l2tp-tunnel.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-03-12 11:35:23 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2019-03-14 10:57:41 +0900
commitd053d08a3785a80a20a50d0704febf616d034dd8 (patch)
treebca587f9db64c30ffe542fe28c32b143f4416812 /src/network/netdev/l2tp-tunnel.h
parent3a56e697c829b5d19d2153beeb3d841813bffe96 (diff)
downloadsystemd-d053d08a3785a80a20a50d0704febf616d034dd8.tar.gz
network: automatically pick an address on link when L2TP.Local= is not specified
This makes L2TP.Local= support an empty string, 'auto', 'static', and 'dynamic'. When one of the values are specified, a local address is automatically picked from the local interface of the tunnel.
Diffstat (limited to 'src/network/netdev/l2tp-tunnel.h')
-rw-r--r--src/network/netdev/l2tp-tunnel.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/network/netdev/l2tp-tunnel.h b/src/network/netdev/l2tp-tunnel.h
index e5fda4b973..a97c924c5d 100644
--- a/src/network/netdev/l2tp-tunnel.h
+++ b/src/network/netdev/l2tp-tunnel.h
@@ -21,6 +21,14 @@ typedef enum L2tpEncapType {
_NETDEV_L2TP_ENCAPTYPE_INVALID = -1,
} L2tpEncapType;
+typedef enum L2tpLocalAddressType {
+ NETDEV_L2TP_LOCAL_ADDRESS_AUTO,
+ NETDEV_L2TP_LOCAL_ADDRESS_STATIC,
+ NETDEV_L2TP_LOCAL_ADDRESS_DYNAMIC,
+ _NETDEV_L2TP_LOCAL_ADDRESS_MAX,
+ _NETDEV_L2TP_LOCAL_ADDRESS_INVALID = -1,
+} L2tpLocalAddressType;
+
typedef struct L2tpTunnel L2tpTunnel;
typedef struct L2tpSession {
@@ -49,6 +57,7 @@ struct L2tpTunnel {
bool udp6_csum_rx;
bool udp6_csum_tx;
+ L2tpLocalAddressType local_address_type;
union in_addr_union local;
union in_addr_union remote;