From 3abdd4bf2e7c6d7eef4e81b4a37fb5ebebc99ef7 Mon Sep 17 00:00:00 2001 From: Jonas Jelten Date: Sat, 11 Dec 2021 00:12:08 +0100 Subject: [PATCH] network-generator: support link6 network configuration this just brings up an interface in order to have IPv6 link local connectivity. --- src/network/generator/network-generator.c | 18 ++++++++++-------- src/network/generator/network-generator.h | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c index 3185e10a830..4a4ac3ed396 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -16,10 +16,10 @@ /* # .network - ip={dhcp|on|any|dhcp6|auto6|either6} - ip=:{dhcp|on|any|dhcp6|auto6}[:[][:]] - ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] - ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] + ip={dhcp|on|any|dhcp6|auto6|either6|link6} + ip=:{dhcp|on|any|dhcp6|auto6|link6}[:[][:]] + ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft}[:[][:]] + ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|link6|ibft}[:[][:]] rd.route=/:[:] nameserver= [nameserver= ...] rd.peerdns=0 @@ -51,6 +51,7 @@ static const char * const dracut_dhcp_type_table[_DHCP_TYPE_MAX] = { [DHCP_TYPE_AUTO6] = "auto6", [DHCP_TYPE_EITHER6] = "either6", [DHCP_TYPE_IBFT] = "ibft", + [DHCP_TYPE_LINK6] = "link6", }; DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(dracut_dhcp_type, DHCPType); @@ -65,6 +66,7 @@ static const char * const networkd_dhcp_type_table[_DHCP_TYPE_MAX] = { [DHCP_TYPE_AUTO6] = "no", /* TODO: enable other setting? */ [DHCP_TYPE_EITHER6] = "ipv6", /* TODO: enable other setting? */ [DHCP_TYPE_IBFT] = "no", + [DHCP_TYPE_LINK6] = "no", }; DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(networkd_dhcp_type, DHCPType); @@ -566,8 +568,8 @@ static int parse_cmdline_ip_address(Context *context, int family, const char *va unsigned char prefixlen; int r; - /* ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] - * ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] */ + /* ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft|link6}[:[][:]] + * ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft|link6}[:[][:]] */ r = parse_ip_address_one(family, &value, &addr); if (r < 0) @@ -660,7 +662,7 @@ static int parse_cmdline_ip_interface(Context *context, const char *value) { const char *ifname, *dhcp_type, *p; int r; - /* ip=:{dhcp|on|any|dhcp6|auto6}[:[][:]] */ + /* ip=:{dhcp|on|any|dhcp6|auto6|link6}[:[][:]] */ p = strchr(value, ':'); if (!p) @@ -694,7 +696,7 @@ static int parse_cmdline_ip(Context *context, const char *key, const char *value p = strchr(value, ':'); if (!p) - /* ip={dhcp|on|any|dhcp6|auto6|either6} */ + /* ip={dhcp|on|any|dhcp6|auto6|either6|link6} */ return network_set_dhcp_type(context, "", value); if (value[0] == '[') diff --git a/src/network/generator/network-generator.h b/src/network/generator/network-generator.h index 5131b20bcc7..25c8816bbe7 100644 --- a/src/network/generator/network-generator.h +++ b/src/network/generator/network-generator.h @@ -18,6 +18,7 @@ typedef enum DHCPType { DHCP_TYPE_AUTO6, DHCP_TYPE_EITHER6, DHCP_TYPE_IBFT, + DHCP_TYPE_LINK6, _DHCP_TYPE_MAX, _DHCP_TYPE_INVALID = -EINVAL, } DHCPType; -- 2.47.3