[PATCH] net: ipv6: Fix IPv6 netmask parsing

seanedmond at linux.microsoft.com seanedmond at linux.microsoft.com
Fri Jan 6 23:22:55 CET 2023


From: Sean Edmond <seanedmond at microsoft.com>

It should be possible to specify a netmask when
setting a static IPv6 address.  For example:
setenv ip6addr 2001:cafe:cafe:cafe::100/64

The net_prefix_length and net_ip6 should be updated
properly.

Signed-off-by: Sean Edmond <seanedmond at microsoft.com>
---
 net/net6.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/net6.c b/net/net6.c
index fdea078788..75577bcea1 100644
--- a/net/net6.c
+++ b/net/net6.c
@@ -47,10 +47,13 @@ static int on_ip6addr(const char *name, const char *value, enum env_op op,
 	}
 
 	mask = strchr(value, '/');
-	len = strlen(value);
 
-	if (mask)
-		net_prefix_length = simple_strtoul(value + len, NULL, 10);
+	if (mask) {
+		net_prefix_length = simple_strtoul(mask + 1, NULL, 10);
+		len = mask - value;
+	} else {
+		len = strlen(value);
+	}
 
 	return string_to_ip6(value, len, &net_ip6);
 }
-- 
2.39.0



More information about the U-Boot mailing list