Il 22:31, domenica 22 luglio 2001, Roberto Arcomano ha scritto: > Hi all, > Recently I have had a problem with Linux proxy arp feature (using with > shaper interface): when I machine starts up it was receiving a "IP > conflits". The problem is that Linux proxy_arp routine doesn't make > difference between real interface (i.e. eth0) and shaper interface (i.e. > shaper0 which has been attached to eth0). > I attach a first beta solution to the problem, which could be far from > optimal! (I use a "strncmp", cause I didn't found another method to know if > the device is a "shaper" device). > > > --- arp.c.orig Wed May 16 19:21:45 2001 > +++ arp.c Sun Jul 22 19:31:20 2001 > @@ -111,7 +111,7 @@ > > #include > #include > - > +#include > > > /* > @@ -767,10 +767,17 @@ > } > goto out; > } else if (IN_DEV_FORWARD(in_dev)) { > + char shflag=0; > + if ( (rt->u.dst.dev) && > + (rt->u.dst.dev->priv) && > + (((struct shaper *) rt->u.dst.dev->priv)->dev) > && + > (strncmp(rt->u.dst.dev->name,"shaper",6)==0) ) + > shflag=1; > if ((rt->rt_flags&RTCF_DNAT) || > - (addr_type == RTN_UNICAST && rt->u.dst.dev != > dev && > + (addr_type == RTN_UNICAST && > + ( ((shflag) && ( ((struct shaper *) > rt->u.dst.dev->priv)->dev != dev)) || ((!shflag) && (rt->u.dst.dev != dev)) > ) && > (IN_DEV_PROXY_ARP(in_dev) || > pneigh_lookup(&arp_tbl, &tip, dev, 0)))) { > - n = neigh_event_ns(&arp_tbl, sha, &sip, > dev); + n = neigh_event_ns(&arp_tbl, sha, > &sip, dev); if (n) > > > The patch declare a variable (flag to know if the interface is > shaper-like), investigate on private data of shaper device (where we can > know what is the attached interface) and set the flag. After we consider > the "attached" interface if flag is set. > > I tested it under 2.4.6 on RedHat 7.1 with success (there is no more IP > conflit). > Hope it'll useful. > > Best Regards > Roberto Arcomano Please someone takes a look at it! This is a bug of proxy arp feature (when talking with shaper interface) could be correct (for example using my patch). Thank you for your help Best Regards Roberto Arcomano