Date: Tue, 14 Jan 2014 19:15:34 +0000 From: Nikolay Denev <nike_d@cytexbg.com> To: Attila Nagy <bra@fsn.hu> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: ECMP hash keys? Message-ID: <CA%2BP_MZFQU4%2B05Pk5cZ4NMZujD9vXDrV=mehN7_vz1OZ6r2-f1Q@mail.gmail.com> In-Reply-To: <52D5138B.8050100@fsn.hu> References: <52D5138B.8050100@fsn.hu>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Currently it's implemented using Modulo-N Hash (RFC2991), see radix_mpath.c:rtalloc_mpath_fib() And as hash the xor of source and destination IP is supplied, look for rtalloc_mpath_fib() in ip_output.c : ... #ifdef RADIX_MPATH rtalloc_mpath_fib(ro, ntohl(ip->ip_src.s_addr ^ ip->ip_dst.s_addr), inp ? inp->inp_inc.inc_fibnum : M_GETFIB(m)); #else ... I've tried to hack this to use m_pkthdr.flowid if it exists, but in my case my network cards were not setting this (vr(4) on soekris) so I did not saw any change. Maybe my idea was completely wrong, but the XOR of src and dst IP is 4 bytes, and this is the size of the flowid as well. (haven't tried with FLOWTABLE enabled though). --Nikolay On Tue, Jan 14, 2014 at 10:38 AM, Attila Nagy <bra@fsn.hu> wrote: > Hi, > > Does equal cost multipath take only the destination address into > consideration when choosing the route? (I've spent only about two minutes > reading radix_mpath.h, but I've got this impression) > > What would be needed to use src and dst addresses and ports -if appropriate? > > Thanks, > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BP_MZFQU4%2B05Pk5cZ4NMZujD9vXDrV=mehN7_vz1OZ6r2-f1Q>