[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbsd-bugs
Subject:    Re: dhcpleased unable to work on CARP interface
From:       Florian Obser <florian () openbsd ! org>
Date:       2021-10-15 11:39:57
Message-ID: m1sfx25xf6.fsf () openbsd ! org
[Download RAW message or body]

On 2021-10-15 09:17 +02, Guy Godfroy <guy.godfroy@gugod.fr> wrote:
>>Synopsis:	dhcpleased unable to work on CARP interface
>>Category:	system
>>Environment:
> 	System      : OpenBSD 7.0
> 	Details     : OpenBSD 7.0 (GENERIC) #224: Thu Sep 30 14:13:34 MDT 2021
> 			 deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC
>
> 	Architecture: OpenBSD.amd64
> 	Machine     : amd64
>>Description:
> 	Since I upgraded my routers to 7.0, I am unable to get a DHCP
> 	lease on CARP interfaces. On 6.9 dhclient worked just fine. On

This fixes it for me in a test setup.

diff --git frontend.c frontend.c
index aecdfd72911..e3fc5b54890 100644
--- frontend.c
+++ frontend.c
@@ -601,8 +601,8 @@ update_iface(struct if_msghdr *ifm, struct sockaddr_dl *sdl)
 	ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) ==
 	    (IFF_UP | IFF_RUNNING);
 
-	if (sdl != NULL && sdl->sdl_type == IFT_ETHER &&
-	    sdl->sdl_alen == ETHER_ADDR_LEN)
+	if (sdl != NULL && (sdl->sdl_type == IFT_ETHER ||
+	    sdl->sdl_type == IFT_CARP) && sdl->sdl_alen == ETHER_ADDR_LEN)
 		memcpy(ifinfo.hw_address.ether_addr_octet, LLADDR(sdl),
 		    ETHER_ADDR_LEN);
 	else if (iface == NULL) {
@@ -691,7 +691,8 @@ init_ifaces(void)
 				struct sockaddr_dl	*sdl;
 
 				sdl = (struct sockaddr_dl *)ifa->ifa_addr;
-				if (sdl->sdl_type != IFT_ETHER ||
+				if ((sdl->sdl_type != IFT_ETHER &&
+				    sdl->sdl_type != IFT_CARP) ||
 				    sdl->sdl_alen != ETHER_ADDR_LEN)
 					continue;
 				memcpy(ifinfo.hw_address.ether_addr_octet,


-- 
I'm not entirely sure you are real.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic