svn commit: r361706 - in head/sys: net net/route netinet netinet6

Alexander V. Chernikov melifaro at freebsd.org
Mon Jun 1 22:00:50 UTC 2020


01.06.2020, 22:43, "Cy Schubert" <cy.schubert at cschubert.com>:
> In message <6FE2C649-2D81-4C9C-B821-D8226B6BB95C at fh-muenster.de>, Michael
> Tuexe
> n writes:
>>  --Apple-Mail=_30A6D176-B5FA-4F13-A949-3CE33C73C3B8
>>  Content-Transfer-Encoding: quoted-printable
>>  Content-Type: text/plain;
>>          charset=us-ascii
>>
>>  > On 1. Jun 2020, at 22:49, Alexander V. Chernikov =
>>  <melifaro at freebsd.org> wrote:
>>  >=20
>>  > Author: melifaro
>>  > Date: Mon Jun 1 20:49:42 2020
>>  > New Revision: 361706
>>  > URL: https://svnweb.freebsd.org/changeset/base/361706
>>  >=20
>>  > Log:
>>  > * Add rib_<add|del|change>_route() functions to manipulate the =
>>  routing table.
>>  >=20
>>  > The main driver for the change is the need to improve notification =
>>  mechanism.
>>  > Currently callers guess the operation data based on the rtentry =
>>  structure
>>  > returned in case of successful operation result. There are two =
>>  problems with
>>  > this appoach. First is that it doesn't provide enough information =
>>  for the
>>  > upcoming multipath changes, where rtentry refers to a new nexthop =
>>  group,
>>  > and there is no way of guessing which paths were added during the =
>>  change.
>>  > Second is that some rtentry fields can change during notification =
>>  and
>>  > protecting from it by requiring customers to unlock rtentry is not =
>>  desired.
>>  >=20
>>  > Additionally, as the consumers such as rtsock do know which operation =
>>  they
>>  > request in advance, making explicit add/change/del versions of the =
>>  functions
>>  > makes sense, especially given the functions don't share a lot of =
>>  code.
>>  >=20
>>  > With that in mind, introduce rib_cmd_info notification structure and
>>  > rib_<add|del|change>_route() functions, with mandatory rib_cmd_info =
>>  pointer.
>>  > It will be used in upcoming generalized notifications.
>>  >=20
>>  > * Move definitions of the new functions and some other =
>>  functions/structures
>>  > used for the routing table manipulation to a separate header file,
>>  > net/route/route_ctl.h. net/route.h is a frequently used file =
>>  included in
>>  > ~140 places in kernel, and 90% of the users don't need these =
>>  definitions.
>>  >=20
>>  > Reviewed by: ae
>>  > Differential Revision: https://reviews.freebsd.org/D25067
>>  >=20
>>  > Modified:
>>  > head/sys/net/if_llatbl.c
>>  > head/sys/net/route.c
>>  > head/sys/net/route.h
>>  > head/sys/net/route/nhop_ctl.c
>>  > head/sys/net/route/route_ctl.c
>>  > head/sys/net/route/route_ddb.c
>>  > head/sys/net/route/route_helpers.c
>>  > head/sys/net/route/route_temporal.c
>>  > head/sys/net/route/route_var.h
>>  > head/sys/netinet/in_rmx.c
>>  > head/sys/netinet/ip_icmp.c
>>  > head/sys/netinet6/icmp6.c
>>  > head/sys/netinet6/in6_rmx.c
>>  > head/sys/netinet6/nd6_rtr.c
>>  >=20
>>  > Modified: head/sys/net/if_llatbl.c
>>  > =
>>  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
>>  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
>>  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
>>  =3D=3D=3D
>>  > --- head/sys/net/if_llatbl.c Mon Jun 1 20:40:40 2020 =
>>  (r361705)
>>  > +++ head/sys/net/if_llatbl.c Mon Jun 1 20:49:42 2020 =
>>  (r361706)
>>  > @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
>>  > #include <net/if_dl.h>
>>  > #include <net/if_var.h>
>>  > #include <net/route.h>
>>  > +#include <net/route/route_ctl.h>
>>  Where is this file coming from?
>
> That was in r361704 and reverted in r361705, but should have been in this
> commit too.
Thanks for the notification and sorry for the breakage.
Didn't realise it was not added and was testin another change.
Commited back in r361707.
>
>>  Best regards
>>  Michael
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert at cschubert.com>
> FreeBSD UNIX: <cy at FreeBSD.org> Web: https://FreeBSD.org
> NTP: <cy at nwtime.org> Web: https://nwtime.org
>
>         The need of the many outweighs the greed of the few.


More information about the svn-src-head mailing list