Date: Mon, 6 Mar 2006 21:47:31 +0300 From: Yar Tikhiy <yar@comp.chem.msu.su> To: Christopher McGee <chris@xecu.net> Cc: freebsd-net@freebsd.org Subject: Re: Carp on vlan with em driver Message-ID: <20060306184731.GD53752@comp.chem.msu.su> In-Reply-To: <440C6A5C.2030003@xecu.net> References: <440876F1.6050804@xecu.net> <20060304211526.GD3304@comp.chem.msu.su> <440C6A5C.2030003@xecu.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 06, 2006 at 11:59:08AM -0500, Christopher McGee wrote: > Yar Tikhiy wrote: > > >On Fri, Mar 03, 2006 at 12:03:45PM -0500, Christopher McGee wrote: > > > > > >>Carp, vlans, and em is still not supported in 5.4 release, but I have > >>read about a patch that works. Can anyone point me in the right > >>direction. > >> > >> > > > >http://docs.freebsd.org/cgi/getmsg.cgi?fetch=25292+0+/usr/local/www/db/text/2005/freebsd-net/20050424.freebsd-net+raw > > > > > > > I have run this patch and when it asks for the file to be patched, I > specify /usr/src/sys/dev/em/if_em.c and I get the following output: > > File to patch: sys/dev/em/if_em.c > Patching file sys/dev/em/if_em.c using Plan A... > patch: **** malformed patch at line 23: @@ -1681,6 +1687,13 @@ > > Am I doing something wrong? The patch in the posting seems just broken by some mail software or whatever. Here's the diff from my local CVS I used to use in RELENG_5 almost a year ago. I have no idea if it will work for you. Be prepared to apply it by hand, should it fail to apply via patch. It's rather small though. -- Yar Index: if_em.c =================================================================== RCS file: /home/ncvs/freebsd/src/sys/dev/em/if_em.c,v retrieving revision 1.1.1.3 retrieving revision 1.4 diff -u -r1.1.1.3 -r1.4 --- if_em.c 19 May 2005 14:45:48 -0000 1.1.1.3 +++ if_em.c 19 May 2005 15:39:06 -0000 1.4 @@ -1666,6 +1666,10 @@ return; } +#ifdef DEV_CARP /* XXX */ +extern void (*vlan_link_state_p)(struct ifnet *, int); +#endif + static void em_print_link_status(struct adapter * adapter) { @@ -1685,6 +1689,8 @@ adapter->smartspeed = 0; ifp->if_link_state = LINK_STATE_UP; #ifdef DEV_CARP + if (ifp->if_nvlans != 0) + (*vlan_link_state_p)(ifp, NOTE_LINKUP); /* XXX */ if (ifp->if_carp) carp_carpdev_state(ifp->if_carp); #endif @@ -1697,6 +1703,8 @@ adapter->link_active = 0; ifp->if_link_state = LINK_STATE_DOWN; #ifdef DEV_CARP + if (ifp->if_nvlans != 0) + (*vlan_link_state_p)(ifp, NOTE_LINKDOWN); /* XXX */ if (ifp->if_carp) carp_carpdev_state(ifp->if_carp); #endif Index: if_vlan.c =================================================================== RCS file: /home/ncvs/freebsd/src/sys/net/if_vlan.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- if_vlan.c 20 Mar 2005 13:25:00 -0000 1.1.1.2 +++ if_vlan.c 21 Mar 2005 12:23:06 -0000 1.2 @@ -41,6 +41,7 @@ * and ask it to send them. */ +#include "opt_carp.h" #include "opt_inet.h" #include <sys/param.h> @@ -67,6 +68,11 @@ #ifdef INET #include <netinet/in.h> #include <netinet/if_ether.h> + +#ifdef DEV_CARP +#include <netinet/in_var.h> +#include <netinet/ip_carp.h> +#endif #endif #define VLANNAME "vlan" @@ -822,6 +828,10 @@ ifv->ifv_if.if_link_state = ifv->ifv_p->if_link_state; rt_ifmsg(&(ifv->ifv_if)); KNOTE_UNLOCKED(&ifp->if_klist, link); +#ifdef DEV_CARP + if (ifv->ifv_if.if_carp) + carp_carpdev_state(ifv->ifv_if.if_carp); +#endif } } VLAN_UNLOCK();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060306184731.GD53752>