On Tue, Feb 28, 2017 at 10:59:39AM +0100, Martin Pieuchot wrote:
> 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?
>
OK claudio@
> >
> > 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
> >
>
--
:wq Claudio