Fwd: pf + pfsync + carp testing ...

Matthew Grooms mgrooms at seton.org
Wed Mar 2 18:12:18 GMT 2005


Gleb,

      Thanks again for looking at this. I see the #ifdev DEV_CARP 
section in if_em.c file. I rebuilt the kernel after applying the patch 
and installed it so I assumed it was in there. I apologize in advance 
for my complete lack of kernel hacking knowledge. I went ahead and added ...

if (ifp->if_carp) {
	carp_carpdev_state(ifp->if_carp);
	printf( "carp interface notified\n" );
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}

... for up/down to make sure the kernel was hitting that chunk of code. 
After a compile and reinstall, unfortunately I didn't see the output 
along with link state changes. I added a ...

#define CARP_DEV 1

... to the beginning of both if_em.c and if_em.h to force it to include 
the em carp support but got this compile error during the kernel build ...

In file included from ../../../dev/em/if_em.h:68,
                  from ../../../dev/em/if_em.c:38:
../../../netinet/ip_carp.h:158: warning: "struct in_ifaddr" declared 
inside parameter list
../../../netinet/ip_carp.h:158: warning: its scope is only this 
definition or declaration, which is probably not what you want
*** Error code 1

Stop in /usr/src/sys/amd64/compile/CUSTOM.

I wish I had more kernel-foo as this is probably me shooting myself in 
the foot somehow. Anyways, Im not sure where to go from here.

      Just on a side note, I seem to vaguely remember seeing something 
the current mailing list about the em driver having problems reporting 
link states. When I did a search in the mailing list archives I found 
this commit message from you. Could this be applicable to the card I am 
using?

http://www.freebsd.org/cgi/getmsg.cgi?fetch=2244676+2246764+/usr/local/www/db/text/2005/cvs-all/20050206.cvs-all

Please let me know if there is anything else I can do to help test this.

-Matthew

Gleb Smirnoff wrote:
> On Tue, Mar 01, 2005 at 07:30:52PM -0600, Matthew Grooms wrote:
> M>      Thanks for the response. I have net.inet.carp.preempt=1 set but 
> M> only one carp interface changes state to master at a time. The second 
> M> host always retains the master for the other two carp interfaces. I am 
> M> able to manually fail over the remaining carp interfaces by changing 
> M> either the carp or parent em[n] interface to down which quickly brings 
> M> the other hosts corresponding interface from backup to master. After a 
> M> firewall holds a master status for all carp devices, I can start to talk 
> M> again through the firewall out to the internet or into the DMZ from my 
> M> test pc.
> M> 
> M> I have two Dell SMP boxes running dual amd64 compatible intel processors 
> M> with two on board intel ports ( em0 & em1 ) and a quad port intel pro 
> M> 1000 MT ( em2, em3, em4 & em5 ). I am using RELENG_5 amd64 SMP builds on 
> M> both hosts. Here is my config info ...
> 
> You have that damn em interfaces, which are mot miibus aware. In the patch
> there is also a small hack in if_em.c to workaround this problem. Can you
> check please that this part of the patch has successfully applied to your
> tree and went into your if_em.ko (or kernel)?
> 


More information about the freebsd-pf mailing list