On Tue, May 18, 2004 at 02:00:28PM +0100, Doug Rabson wrote: > On Tue, 2004-05-18 at 09:48, Luigi Rizzo wrote: > > I will try to remove as many assumptions as possible. > > thanks for the feedback. > > I think that in your prototype, the only assumption was in struct > llentry. I would suggest defining it as something like:
to be really flexible, both l3_addr and ll_addr should be variable size (v4,v6,v8 over 802.x,firewire,appletalk,snail-mail), then things rapidly become confusing and inefficient. I would like to keep the ipv4 over ethernet case simple and quick, even if this means replicating the code for the generic case (and this is one of the reasons i have stalled a bit on this code -- i want to make up my mind on what is a reasonable approaxch). cheers luigi > struct llentry { > struct llentry *lle_next; > struct mbuf *la_hold; > uint16_t flags; /* see values in if_ether.h */ > uint8_t la_preempt; > uint8_t la_asked; > time_t expire; > struct in_addr l3_addr; > uint8_t ll_addr[0]; > }; > > Where the allocation of them uses something like 'malloc(sizeof(struct > llentry) + ifp->if_addrlen)'. > > > > _______________________________________________ > [EMAIL PROTECTED] mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "[EMAIL PROTECTED]" _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"