Date: Wed, 31 Dec 2008 05:22:31 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r186631 - user/kmacy/HEAD_fast_net/sys/netinet Message-ID: <200812310522.mBV5MVv3015789@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Wed Dec 31 05:22:31 2008 New Revision: 186631 URL: http://svn.freebsd.org/changeset/base/186631 Log: use flowtable_lookup in in_pcbladdr to avoid contending in calls to in_pcbconnect_setup when the laddr is not bound Modified: user/kmacy/HEAD_fast_net/sys/netinet/in_pcb.c Modified: user/kmacy/HEAD_fast_net/sys/netinet/in_pcb.c ============================================================================== --- user/kmacy/HEAD_fast_net/sys/netinet/in_pcb.c Wed Dec 31 05:09:53 2008 (r186630) +++ user/kmacy/HEAD_fast_net/sys/netinet/in_pcb.c Wed Dec 31 05:22:31 2008 (r186631) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include <vm/uma.h> +#include <net/flowtable.h> #include <net/if.h> #include <net/if_types.h> #include <net/if_llatbl.h> @@ -87,6 +88,7 @@ __FBSDID("$FreeBSD$"); #include <security/mac/mac_framework.h> +extern struct flowtable *ipv4_ft; #ifdef VIMAGE_GLOBALS /* * These configure the range of local port addresses assigned to @@ -636,11 +638,14 @@ in_pcbladdr(struct inpcb *inp, struct in * If route is known our src addr is taken from the i/f, * else punt. * + * XXX need to account for fibnum * Find out route to destination. */ if ((inp->inp_socket->so_options & SO_DONTROUTE) == 0) + flowtable_lookup(ipv4_ft, NULL, &sro); +#if 0 in_rtalloc_ign(&sro, 0, inp->inp_inc.inc_fibnum); - +#endif /* * If we found a route, use the address corresponding to * the outgoing interface. @@ -806,8 +811,6 @@ in_pcbladdr(struct inpcb *inp, struct in } done: - if (sro.ro_rt != NULL) - RTFREE(sro.ro_rt); return (error); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812310522.mBV5MVv3015789>