On 22/02/17(Wed) 13:12, Martin Pieuchot wrote:
> I'd like to keep rtalloc(9) for the hot path since it increments the use
> counter. This will become more important when routes entries will be
> cached in PF states. This counter will allow us to really see how many
> times a lookup have been done.
>
> So here's a diff that change a rtalloc(9) into rtable_match() when
> checking for an existing entry.
>
> ok?
Anyone?
>
> Index: sys/net/route.c
> ===================================================================
> RCS file: /cvs/src/sys/net/route.c,v
> retrieving revision 1.351
> diff -u -p -r1.351 route.c
> --- sys/net/route.c 15 Feb 2017 18:53:29 -0000 1.351
> +++ sys/net/route.c 22 Feb 2017 12:03:12 -0000
> @@ -1084,7 +1084,8 @@ rtrequest(int req, struct rt_addrinfo *i
> error = rtable_insert(tableid, ndst,
> info->rti_info[RTAX_NETMASK], info->rti_info[RTAX_GATEWAY],
> rt->rt_priority, rt);
> - if (error != 0 && (crt = rtalloc(ndst, 0, tableid)) != NULL) {
> + if (error != 0 &&
> + (crt = rtable_match(tableid, ndst, NULL)) != NULL) {
> /* overwrite cloned route */
> if (ISSET(crt->rt_flags, RTF_CLONED)) {
> struct ifnet *cifp;
> Index: regress/sbin/route/rttest3.ok
> ===================================================================
> RCS file: /cvs/src/regress/sbin/route/rttest3.ok,v
> retrieving revision 1.9
> diff -u -p -r1.9 rttest3.ok
> --- regress/sbin/route/rttest3.ok 1 Sep 2016 11:36:15 -0000 1.9
> +++ regress/sbin/route/rttest3.ok 22 Feb 2017 12:07:46 -0000
> @@ -2,7 +2,7 @@ Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Mtu Prio Iface
> -10.8.1/24 192.0.2.3 UGS 0 1 32768 8
> lo10003
> +10.8.1/24 192.0.2.3 UGS 0 0 32768 8
> lo10003
> 192.0.2.1 192.0.2.1 UHl 0 0 32768 1
> lo10001
> 192.0.2.2 192.0.2.2 UHl 0 0 32768 1
> lo10002
> 192.0.2.3 192.0.2.3 UHhl 1 4 32768 1
> lo10003
> Index: regress/sbin/route/rttest5.ok
> ===================================================================
> RCS file: /cvs/src/regress/sbin/route/rttest5.ok,v
> retrieving revision 1.9
> diff -u -p -r1.9 rttest5.ok
> --- regress/sbin/route/rttest5.ok 1 Sep 2016 11:36:15 -0000 1.9
> +++ regress/sbin/route/rttest5.ok 22 Feb 2017 12:07:46 -0000
> @@ -2,7 +2,7 @@ Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Mtu Prio Iface
> -10.8.1/24 192.0.2.2 UGS 0 1 32768 16
> lo10002
> +10.8.1/24 192.0.2.2 UGS 0 0 32768 16
> lo10002
> 10.8.1/24 192.0.2.2 UGS 0 0 32768 17
> lo10002
> 10.8.1/24 192.0.2.2 UGS 0 0 32768 18
> lo10002
> 192.0.2.1 192.0.2.1 UHl 0 0 32768 1
> lo10001
> Index: regress/sbin/route/rttest6.ok
> ===================================================================
> RCS file: /cvs/src/regress/sbin/route/rttest6.ok,v
> retrieving revision 1.9
> diff -u -p -r1.9 rttest6.ok
> --- regress/sbin/route/rttest6.ok 1 Sep 2016 11:36:15 -0000 1.9
> +++ regress/sbin/route/rttest6.ok 22 Feb 2017 12:07:46 -0000
> @@ -2,7 +2,7 @@ Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Mtu Prio Iface
> -10.8.1/24 192.0.2.1 UGS 0 1 32768 16
> lo10001
> +10.8.1/24 192.0.2.1 UGS 0 0 32768 16
> lo10001
> 10.8.1/24 192.0.2.2 UGS 0 0 32768 17
> lo10002
> 10.8.1/24 192.0.2.3 UGS 0 0 32768 18
> lo10003
> 192.0.2.1 192.0.2.1 UHhl 1 2 32768 1
> lo10001
> Index: regress/sbin/route/rttest8.ok
> ===================================================================
> RCS file: /cvs/src/regress/sbin/route/rttest8.ok,v
> retrieving revision 1.10
> diff -u -p -r1.10 rttest8.ok
> --- regress/sbin/route/rttest8.ok 1 Sep 2016 11:36:15 -0000 1.10
> +++ regress/sbin/route/rttest8.ok 22 Feb 2017 12:07:46 -0000
> @@ -2,7 +2,7 @@ Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Mtu Prio Iface
> -10.8.1/24 192.0.2.1 UGS 0 1 32768 16
> lo10001
> +10.8.1/24 192.0.2.1 UGS 0 0 32768 16
> lo10001
> 10.8.1/24 192.0.2.3 UGS 0 0 32768 18
> lo10003
> 10.8.1/24 192.0.2.2 GS 0 0 32768 17
> lo10002
> 192.0.2.1 192.0.2.1 UHhl 1 2 32768 1
> lo10001
>