Page MenuHomeFreeBSD

WIP: Remove scope embedding in the lle/lltable code
Needs ReviewPublic

Authored by nc on Nov 6 2020, 3:42 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 30, 5:03 PM
Unknown Object (File)
Tue, Apr 30, 5:03 PM
Unknown Object (File)
Tue, Apr 30, 5:03 PM
Unknown Object (File)
Tue, Apr 30, 5:03 PM
Unknown Object (File)
Tue, Apr 30, 5:03 PM
Unknown Object (File)
Tue, Apr 30, 10:42 AM
Unknown Object (File)
Jan 18 2024, 1:16 PM
Unknown Object (File)
Jan 12 2024, 7:55 AM

Details

Reviewers
melifaro
Summary
NOTE: This is a Work In Progress, and is probably incomplete.

Remove scope embedding in the lle/lltable code. This is part of the new routing KPI.

Submitted by: Neel Chauhan <neel AT neelc DOT org>

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

nc requested review of this revision.Nov 6 2020, 3:42 AM
sys/netinet6/in6.c
2147 ↗(On Diff #79250)

If we still want to perform route lookup for link-local addresses (and multicast, though I don't remember if we do that) we need to use scope - which is sin6->sin6_scope_id.

Also we don't fill dst now.

Here's revision 2.

TODO:

    • Use new scope in nd6.c
  • nexthops/nhop_ctl code scope removing
nc marked an inline comment as done.Nov 11 2020, 5:11 AM

I do not see any mention of scopes in nhop_ctl (from your email), very less scope embedding. May I please know where the nexthop scope embedding code is located?

Also, I don't know if I should touch lines 188-189's (get scope) in sys/netinet6/nd6.c?

melifaro@ gave an explanation/clarification that this is much larger than originally anticipated. This patch is still a WIP, the RTAX_DST/RTAX_GATEWAY parts in rib_action() still needs to be done.

In D27112#606918, @neel_neelc.org wrote:

melifaro@ gave an explanation/clarification that this is much larger than originally anticipated. This patch is still a WIP, the RTAX_DST/RTAX_GATEWAY parts in rib_action() still needs to be done.

Thank you for working on this!

As a hint, netinet6/ and net/routing tests should give pretty good coverage on the affected areas. I typically run the following to check if something broke:

kyua test -k /usr/tests/sys/netinet/Kyuafile
kyua list -k /usr/tests/sys/netinet6/Kyuafile | grep -v frag6/ | grep -v exthdr | sudo xargs kyua test -k /usr/tests/sys/netinet6/Kyuafile
kyua test -k /usr/tests/sys/net/routing/Kyuafile

(assuming the tests are installed, which the below commands would do:)

make -C tests/sys/netinet all install
make -C tests/sys/netinet6 all install
make -C tests/sys/net all install

Sorry for the delay.

@melifaro, In your email (back in 11/11/20), you mentioned:

Rtsock cleanup. Remove rt_xaddr and all deembed_scopeid stuff. This will break lle/link-local routes, so to unbreak it one can add piece of code inside rib_action() that would copy RTAX_DST/RTAX_GATEWAY to embedded on-stack versions.

The question is, in rib_action(), I don't see the on-stack variables.

An updated diff. It turned out my previous diff broke even IPv4.