The problem I was to fix had been fixed by dlg@'s commit today.

  https://marc.info/?l=openbsd-cvs&m=159538265604770&w=2

So the diff is not needed any more.  Pointed out by dlg@.

Thanks,

On Wed, 22 Jul 2020 19:24:32 +0900 (JST)
YASUOKA Masahiko <yasu...@openbsd.org> wrote:
> Hi,
> 
> Currently when using the real mac address for carp(4) interface, all
> packets are treated as their receive inteface is carp.  This causes
> some problems.
> 
> For example, IPv6 ndp doesn't work on an interface which is used for
> carpdev.  Because it is assumed that reply packets are received with
> the same interface which is used to send out the request.
> 
> ok?
> 
> When realmac is used for carp(4), don't pass the packets through the
> interface since they are for the real interface.
> 
> Index: sys/netinet/ip_carp.c
> ===================================================================
> RCS file: /disk/cvs/openbsd/src/sys/netinet/ip_carp.c,v
> retrieving revision 1.345
> diff -u -p -r1.345 ip_carp.c
> --- sys/netinet/ip_carp.c     21 May 2020 05:24:59 -0000      1.345
> +++ sys/netinet/ip_carp.c     22 Jul 2020 09:52:20 -0000
> @@ -1418,6 +1418,14 @@ carp_input(struct ifnet *ifp0, struct mb
>                               }
>                               m_tag_prepend(m, mtag);
>                       }
> +
> +                     /*
> +                      * When carp is using realmac, since the matched MAC
> +                      * address is for the real interface, the packets are
> +                      * not for the carp interface.
> +                      */
> +                     if (sc->sc_realmac)
> +                             sc = NULL;
>                       break;
>               }
>       }
> 

Reply via email to