Gleb,

thanks again for looking into this and for your suggestions.

Unfortunately Alpha/Beta/release candidate/pre-release/test versions of software is a "no go" on that machine. Our short term solution will be to upgrade the CPU to a faster model. After that, I will be able to assemble a dual processor system from spare parts and also play with fastforwarding.

I will be glad to post the results of my tests to the mailing list, but it may take awhile.


Cheers!


On 14-Feb-06, at 9:52, Gleb Smirnoff wrote:

On Tue, Feb 14, 2006 at 09:27:46AM -0500, Marcos Bedinelli wrote:
M> >M> I tried the 'sysctl net.inet.ip.fastforwarding=1' yesterday morning
M> >M> and, as soon as I entered the command, the machine stopped
M> >forwarding
M> >M> packets. Unfortunately I was unable to spend time troubleshooting
M> >the
M> >M> problem because the machine is in production and can't be down for
M> >not
M> >M> even a couple of minutes.
M> >
M> >This is strange. Can you please show output of 'ifconfig'? Are you
M> >using
M> >any packet filters or other additional processing of forwarded packets?
M> >Did the router generated any ICMP errors or just silently dropped
M> >packets?
M>
M>
M> The machine is running Quagga (OSPF and BGP). OSPF runs on bge0. BGP
M> runs on bge1. It also runs IPFW and basic SNMP.
M>
M> I suspect the problem I experienced yesterday is related to the IPFW
M> ruleset. Although it's mainly used for blocking, there are two rules
M> that forward packets to another machine:
M>
M>       [...]
M> 07700 fwd a.b.c.d ip from w.x.y.z/16 to any in recv bge0
M>       [...]
M> 15300 fwd a.b.c.d ip from any to any out xmit disc0
M>
M>
M> Rule 7700 is doing policy-based routing: if the source IP belongs to
M> network w.x.y.z/16, the packet is forwarded to host a.b.c.d
M>
M> I am suspicious about rule 15300. Virtual interface disc0 is our
M> default route. In other words, the routing table is updated by both
M> OSPF and BGP. Packets that don't match a specific entry on the routing M> table are sent to disc0. Rule 15300 will catch those packets and send
M> them to host a.b.c.d as well.

I understood the problem. The fastforwarding code refuses to forward
packet if it is routed to interface w/o IFF_DRV_RUNNING flag. The disc0
interface in 6.0-RELEASE doesn't have IFF_DRV_RUNNING flag.

That's why I added this flag to disc(4) in 6.0-STABLE, to satisfy fast
forwarding:

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/if_disc.c.diff? r1=1.48&r2=1.48.2.1

Actually, it is incorrect that upper netowork layer looks into if_drv_flags.

You can either apply the above patch, or upgrade your system to 6.1-BETA. As I said before bge(4) driver has undergone some improvements, and I'll appreciate
if you try to upgrade and provide any feedback.

--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE


--
Marcos

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to