Mailing List Archive

[PATCH 0/5] NHRP implementation
Hi,

Now that we have all the important stuff in master (fib overrides,
nexthop tracking), I'm ready to submit NHRP for inclusion.

The first three commits fix simple bugs. The first two ones probably
are not triggerable without running NHRP. The third commit may have
caused regressions for some use cases.

The fourth patch is not strictly needed. But as I had it in my queue
and it's simplifying things, I'm posting it here too.

Finally the fifth commit implements all of nhrp and plugs it in place.

Thanks,
Timo


Timo Teräs (5):
zebra: use FIB state for nexthop tracking
zebra: fix nht validity checking to be same as when it's resolved
bgpd: honor disable-connected-check option with next hop tracking
bgpd: simplify ebgp-multihop and ttl-security handling
nhrpd: implement next hop resolution protocol

.gitignore | 2 +
Makefile.am | 4 +-
SERVICES | 1 +
bgpd/bgp_fsm.c | 3 +-
bgpd/bgp_network.c | 58 ++--
bgpd/bgp_network.h | 1 +
bgpd/bgp_route.c | 4 +-
bgpd/bgp_vty.c | 26 +-
bgpd/bgp_zebra.c | 13 +-
bgpd/bgpd.c | 237 +++----------
bgpd/bgpd.h | 7 +-
configure.ac | 27 +-
lib/log.c | 5 +
lib/log.h | 3 +-
lib/memtypes.c | 14 +
lib/route_types.txt | 2 +
nhrpd/Makefile.am | 34 ++
nhrpd/README.kernel | 145 ++++++++
nhrpd/README.nhrpd | 137 ++++++++
nhrpd/linux.c | 153 ++++++++
nhrpd/list.h | 191 ++++++++++
nhrpd/netlink.c | 398 +++++++++++++++++++++
nhrpd/netlink.h | 21 ++
nhrpd/nhrp_cache.c | 341 ++++++++++++++++++
nhrpd/nhrp_event.c | 280 +++++++++++++++
nhrpd/nhrp_interface.c | 404 +++++++++++++++++++++
nhrpd/nhrp_main.c | 246 +++++++++++++
nhrpd/nhrp_nhs.c | 369 ++++++++++++++++++++
nhrpd/nhrp_packet.c | 312 +++++++++++++++++
nhrpd/nhrp_peer.c | 860 +++++++++++++++++++++++++++++++++++++++++++++
nhrpd/nhrp_protocol.h | 128 +++++++
nhrpd/nhrp_route.c | 345 ++++++++++++++++++
nhrpd/nhrp_shortcut.c | 402 +++++++++++++++++++++
nhrpd/nhrp_vc.c | 217 ++++++++++++
nhrpd/nhrp_vty.c | 928 +++++++++++++++++++++++++++++++++++++++++++++++++
nhrpd/nhrpd.h | 440 +++++++++++++++++++++++
nhrpd/os.h | 5 +
nhrpd/reqid.c | 49 +++
nhrpd/resolver.c | 190 ++++++++++
nhrpd/vici.c | 482 +++++++++++++++++++++++++
nhrpd/vici.h | 24 ++
nhrpd/zbuf.c | 219 ++++++++++++
nhrpd/zbuf.h | 189 ++++++++++
nhrpd/znl.c | 160 +++++++++
nhrpd/znl.h | 29 ++
vtysh/Makefile.am | 1 +
vtysh/vtysh.c | 1 +
vtysh/vtysh.h | 5 +-
zebra/client_main.c | 1 +
zebra/zebra_rib.c | 2 +
zebra/zebra_rnh.c | 23 +-
zebra/zebra_vty.c | 2 +
52 files changed, 7874 insertions(+), 266 deletions(-)
create mode 100644 nhrpd/Makefile.am
create mode 100644 nhrpd/README.kernel
create mode 100644 nhrpd/README.nhrpd
create mode 100644 nhrpd/linux.c
create mode 100644 nhrpd/list.h
create mode 100644 nhrpd/netlink.c
create mode 100644 nhrpd/netlink.h
create mode 100644 nhrpd/nhrp_cache.c
create mode 100644 nhrpd/nhrp_event.c
create mode 100644 nhrpd/nhrp_interface.c
create mode 100644 nhrpd/nhrp_main.c
create mode 100644 nhrpd/nhrp_nhs.c
create mode 100644 nhrpd/nhrp_packet.c
create mode 100644 nhrpd/nhrp_peer.c
create mode 100644 nhrpd/nhrp_protocol.h
create mode 100644 nhrpd/nhrp_route.c
create mode 100644 nhrpd/nhrp_shortcut.c
create mode 100644 nhrpd/nhrp_vc.c
create mode 100644 nhrpd/nhrp_vty.c
create mode 100644 nhrpd/nhrpd.h
create mode 100644 nhrpd/os.h
create mode 100644 nhrpd/reqid.c
create mode 100644 nhrpd/resolver.c
create mode 100644 nhrpd/vici.c
create mode 100644 nhrpd/vici.h
create mode 100644 nhrpd/zbuf.c
create mode 100644 nhrpd/zbuf.h
create mode 100644 nhrpd/znl.c
create mode 100644 nhrpd/znl.h

--
2.10.1


_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev
Re: [PATCH 0/5] NHRP implementation [ In reply to ]
Hi Timo,

Thanks. I'll try get this in the next slurpage. Due to travel that might
be after a week on tuesday though.

Aim will be to have the "staging/proposed -> push to master" cycle to 1
to max 2 weeks here-after.

(Modulo the odd cases of people saying "hey, I'm away that week or two
- mind adjusting?", as that crops up + whatever major holidays,
Christmas, Chinese New Year [and there's currently one in India?]).

regards,

Paul

On Wed, 19 Oct 2016, Timo Teräs wrote:

> Hi,
>
> Now that we have all the important stuff in master (fib overrides,
> nexthop tracking), I'm ready to submit NHRP for inclusion.
>
> The first three commits fix simple bugs. The first two ones probably
> are not triggerable without running NHRP. The third commit may have
> caused regressions for some use cases.
>
> The fourth patch is not strictly needed. But as I had it in my queue
> and it's simplifying things, I'm posting it here too.
>
> Finally the fifth commit implements all of nhrp and plugs it in place.
>
> Thanks,
> Timo
>
>
> Timo Teräs (5):
> zebra: use FIB state for nexthop tracking
> zebra: fix nht validity checking to be same as when it's resolved
> bgpd: honor disable-connected-check option with next hop tracking
> bgpd: simplify ebgp-multihop and ttl-security handling
> nhrpd: implement next hop resolution protocol
>
> .gitignore | 2 +
> Makefile.am | 4 +-
> SERVICES | 1 +
> bgpd/bgp_fsm.c | 3 +-
> bgpd/bgp_network.c | 58 ++--
> bgpd/bgp_network.h | 1 +
> bgpd/bgp_route.c | 4 +-
> bgpd/bgp_vty.c | 26 +-
> bgpd/bgp_zebra.c | 13 +-
> bgpd/bgpd.c | 237 +++----------
> bgpd/bgpd.h | 7 +-
> configure.ac | 27 +-
> lib/log.c | 5 +
> lib/log.h | 3 +-
> lib/memtypes.c | 14 +
> lib/route_types.txt | 2 +
> nhrpd/Makefile.am | 34 ++
> nhrpd/README.kernel | 145 ++++++++
> nhrpd/README.nhrpd | 137 ++++++++
> nhrpd/linux.c | 153 ++++++++
> nhrpd/list.h | 191 ++++++++++
> nhrpd/netlink.c | 398 +++++++++++++++++++++
> nhrpd/netlink.h | 21 ++
> nhrpd/nhrp_cache.c | 341 ++++++++++++++++++
> nhrpd/nhrp_event.c | 280 +++++++++++++++
> nhrpd/nhrp_interface.c | 404 +++++++++++++++++++++
> nhrpd/nhrp_main.c | 246 +++++++++++++
> nhrpd/nhrp_nhs.c | 369 ++++++++++++++++++++
> nhrpd/nhrp_packet.c | 312 +++++++++++++++++
> nhrpd/nhrp_peer.c | 860 +++++++++++++++++++++++++++++++++++++++++++++
> nhrpd/nhrp_protocol.h | 128 +++++++
> nhrpd/nhrp_route.c | 345 ++++++++++++++++++
> nhrpd/nhrp_shortcut.c | 402 +++++++++++++++++++++
> nhrpd/nhrp_vc.c | 217 ++++++++++++
> nhrpd/nhrp_vty.c | 928 +++++++++++++++++++++++++++++++++++++++++++++++++
> nhrpd/nhrpd.h | 440 +++++++++++++++++++++++
> nhrpd/os.h | 5 +
> nhrpd/reqid.c | 49 +++
> nhrpd/resolver.c | 190 ++++++++++
> nhrpd/vici.c | 482 +++++++++++++++++++++++++
> nhrpd/vici.h | 24 ++
> nhrpd/zbuf.c | 219 ++++++++++++
> nhrpd/zbuf.h | 189 ++++++++++
> nhrpd/znl.c | 160 +++++++++
> nhrpd/znl.h | 29 ++
> vtysh/Makefile.am | 1 +
> vtysh/vtysh.c | 1 +
> vtysh/vtysh.h | 5 +-
> zebra/client_main.c | 1 +
> zebra/zebra_rib.c | 2 +
> zebra/zebra_rnh.c | 23 +-
> zebra/zebra_vty.c | 2 +
> 52 files changed, 7874 insertions(+), 266 deletions(-)
> create mode 100644 nhrpd/Makefile.am
> create mode 100644 nhrpd/README.kernel
> create mode 100644 nhrpd/README.nhrpd
> create mode 100644 nhrpd/linux.c
> create mode 100644 nhrpd/list.h
> create mode 100644 nhrpd/netlink.c
> create mode 100644 nhrpd/netlink.h
> create mode 100644 nhrpd/nhrp_cache.c
> create mode 100644 nhrpd/nhrp_event.c
> create mode 100644 nhrpd/nhrp_interface.c
> create mode 100644 nhrpd/nhrp_main.c
> create mode 100644 nhrpd/nhrp_nhs.c
> create mode 100644 nhrpd/nhrp_packet.c
> create mode 100644 nhrpd/nhrp_peer.c
> create mode 100644 nhrpd/nhrp_protocol.h
> create mode 100644 nhrpd/nhrp_route.c
> create mode 100644 nhrpd/nhrp_shortcut.c
> create mode 100644 nhrpd/nhrp_vc.c
> create mode 100644 nhrpd/nhrp_vty.c
> create mode 100644 nhrpd/nhrpd.h
> create mode 100644 nhrpd/os.h
> create mode 100644 nhrpd/reqid.c
> create mode 100644 nhrpd/resolver.c
> create mode 100644 nhrpd/vici.c
> create mode 100644 nhrpd/vici.h
> create mode 100644 nhrpd/zbuf.c
> create mode 100644 nhrpd/zbuf.h
> create mode 100644 nhrpd/znl.c
> create mode 100644 nhrpd/znl.h
>
>

--
Paul Jakma | paul@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
The Phone Booth Rule:
A lone dime always gets the number nearly right.
Re: [PATCH 0/5] NHRP implementation [ In reply to ]
Hi Timo,

There's a compile failure here somewhere:

make[2]: Entering directory '/home/paul/code/quagga/nhrpd'
CC zbuf.o
CC znl.o
CC resolver.o
CC linux.o
CC netlink.o
In file included from /usr/include/linux/if_tunnel.h:6:0,
from netlink.c:17:
/usr/include/linux/ip.h:85:8: error: redefinition of ?struct iphdr?
struct iphdr {
^~~~~
In file included from netlink.c:12:0:
/usr/include/netinet/ip.h:44:8: note: originally defined here
struct iphdr
^~~~~
Makefile:497: recipe for target 'netlink.o' failed

# rpm -q kernel-headers
kernel-headers-4.8.15-200.fc24.x86_64

regards,
--
Paul Jakma | paul@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Laugh and the world laughs with you, snore and you sleep alone.
Re: [PATCH 0/5] NHRP implementation [ In reply to ]
On Thu, 12 Jan 2017 13:17:10 +0000 (GMT)
Paul Jakma <paul@jakma.org> wrote:

> There's a compile failure here somewhere:
>
> make[2]: Entering directory '/home/paul/code/quagga/nhrpd'
> CC zbuf.o
> CC znl.o
> CC resolver.o
> CC linux.o
> CC netlink.o
> In file included from /usr/include/linux/if_tunnel.h:6:0,
> from netlink.c:17:
> /usr/include/linux/ip.h:85:8: error: redefinition of ‘struct iphdr’
> struct iphdr {
> ^~~~~
> In file included from netlink.c:12:0:
> /usr/include/netinet/ip.h:44:8: note: originally defined here
> struct iphdr
> ^~~~~
> Makefile:497: recipe for target 'netlink.o' failed
>
> # rpm -q kernel-headers
> kernel-headers-4.8.15-200.fc24.x86_64

Seems to be caused by the recent kernel commit:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1fe8e0f074c77aa41aaa579345a9e675acbebfa9

It is known issue that some of the c-library and kernel header files
conflict with each other. Slightly sad, that it's getting more overlap.

Fundamentally, it would be good to get lib/quagga.h to not include all
known headers in the universe. This would allow to include quagga
library headers in connection with kernel headers.

Probably the simples fix is to split the netlink.c in two parts. I can
send a v3 nhrpd commit, unless you prefer a follow up commit that fixes
it?

Thanks,
Timo


_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev
Re: [PATCH 0/5] NHRP implementation [ In reply to ]
On Thu, 12 Jan 2017, Timo Teras wrote:

> Seems to be caused by the recent kernel commit:
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1fe8e0f074c77aa41aaa579345a9e675acbebfa9
>
> It is known issue that some of the c-library and kernel header files
> conflict with each other. Slightly sad, that it's getting more
> overlap.

Ah, oh dear.

> Fundamentally, it would be good to get lib/quagga.h to not include all
> known headers in the universe. This would allow to include quagga
> library headers in connection with kernel headers.

Agreed.

Beyond that, a larger cleanup of the exported APIs of header files. It'd
be good to define a stable subset, and export it properly under a
"quagga/" include namespace.

> Probably the simples fix is to split the netlink.c in two parts. I can
> send a v3 nhrpd commit, unless you prefer a follow up commit that fixes
> it?

Whatever is easier for you. If you have a follow up and want to just
send that, that's fine.

regards,
--
Paul Jakma | paul@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Fear and loathing, my man, fear and loathing.
-- H.S. Thompson

_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev