OpenBSD CVS

CVS log for src/usr.sbin/bgpctl/mrtparser.c


[BACK] Up to [local] / src / usr.sbin / bgpctl

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.22 / (download) - annotate - [select for diffs], Thu Feb 1 11:37:10 2024 UTC (4 months, 1 week ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, HEAD
Changes since 1.21: +314 -580 lines
Diff to previous 1.21 (colored)

Convert the mrtparser to use ibufs in many places.

More is possible but for now this covers most of the message parsers.
OK tb@

Revision 1.21 / (download) - annotate - [select for diffs], Tue Jan 23 16:16:15 2024 UTC (4 months, 2 weeks ago) by claudio
Branch: MAIN
Changes since 1.20: +14 -10 lines
Diff to previous 1.20 (colored)

Adopt bgpctl code to the ibuf changes done in bgpd.

Adjust code that calls nlri_get_prefix() and friends to work with
an ibuf. show_mrt_update() is mostly converted because of this.
The output functions and the rest of the mrtparser are just
minimally touched to keep the diff reasonable.
OK tb@

Revision 1.20 / (download) - annotate - [select for diffs], Mon Nov 20 14:18:21 2023 UTC (6 months, 2 weeks ago) by claudio
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

KNF

Revision 1.19 / (download) - annotate - [select for diffs], Tue Oct 18 09:30:29 2022 UTC (19 months, 3 weeks ago) by job
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

Fix some spelling errors

Thanks Marco D'Itri for spotting them

OK claudio@

Revision 1.18 / (download) - annotate - [select for diffs], Wed Aug 17 15:16:12 2022 UTC (21 months, 3 weeks ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

Use memset() instead of bzero().
OK tb@ deraadt@

Revision 1.17 / (download) - annotate - [select for diffs], Sun Feb 6 09:52:32 2022 UTC (2 years, 4 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.16: +79 -80 lines
Diff to previous 1.16 (colored)

Switch from u_intX_t types to stdint.h uintX_t like it was done in bgpd.
OK florian@ tb@

Revision 1.16 / (download) - annotate - [select for diffs], Wed Sep 22 18:17:49 2021 UTC (2 years, 8 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.15: +8 -18 lines
Diff to previous 1.15 (colored)

Adjust handling of RIB_GENERIC_ADDPATH MRT messages. Parse it the way
OpenBGPD and GoBGP dump so that it works with all the MRT implementations
out there supporting this.
While there do some additional minor cleanup.
OK deraadt@

Revision 1.15 / (download) - annotate - [select for diffs], Tue Jul 27 07:42:37 2021 UTC (2 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.14: +62 -4 lines
Diff to previous 1.14 (colored)

Implemnt the RFC8050 in the MRT parser. With this MRT dumps containing
add-path information will be dumped properly.

There is one bit where this implementation is not in line with the RFC.
The encoding of DUMP_V2_RIB_GENERIC_ADDPATH for non IPv4 or IPv6 prefixes
is implemented the way gobgp did it (which seems to be the only other BGP
implementation that supports generic encoding). The RFC puts the path_id
in the NLRI for generic encoding instead of adding it to RIB entry struct
like in the IPv4 and IPv6 encoding. This is an open discussion point with
the RFC author.

OK benno@

Revision 1.14 / (download) - annotate - [select for diffs], Mon Jan 18 12:16:09 2021 UTC (3 years, 4 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.13: +5 -5 lines
Diff to previous 1.13 (colored)

Adjust code to the change of struct bgpd_addr in bgpd.
OK denis@

Revision 1.13 / (download) - annotate - [select for diffs], Wed Jul 3 06:22:01 2019 UTC (4 years, 11 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.12: +3 -1 lines
Diff to previous 1.12 (colored)

Add a default case to subtype switch in the table v2 parser.
If a unknown subtype is encountered it is better to fail.

Revision 1.12 / (download) - annotate - [select for diffs], Fri Jun 28 05:22:13 2019 UTC (4 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.11: +120 -109 lines
Diff to previous 1.11 (colored)

Implement the bits and pieces that are needed to dump MRT_DUMP_V2_RIB_GENERIC
messages and BGP MPLS VPNs.
OK benno@

Revision 1.11 / (download) - annotate - [select for diffs], Mon Jun 17 13:46:33 2019 UTC (4 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.10: +8 -8 lines
Diff to previous 1.10 (colored)

Cleanup some spaces here as well. Again no binary change.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Feb 25 11:51:58 2019 UTC (5 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.9: +90 -83 lines
Diff to previous 1.9 (colored)

Use struct bgpd_addr instead of a union of sockaddrs to store addresses
in the mrt dump structs. This is more compatible with bgpctl since it uses
struct bgpd_addr in most cases anyway.
OK kn@

Revision 1.9 / (download) - annotate - [select for diffs], Fri Jul 20 12:49:49 2018 UTC (5 years, 10 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.8: +30 -3 lines
Diff to previous 1.8 (colored)

Print the timestamp embedded in mrt files for update and status messages.
Also implemented the extended precision format so microseconds are printed
as well when available. The output is relative to the previous message and
follows what kdump does.
OK benno@

Revision 1.8 / (download) - annotate - [select for diffs], Wed Dec 23 20:42:20 2015 UTC (8 years, 5 months ago) by mmcc
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.7: +2 -3 lines
Diff to previous 1.7 (colored)

Remove NULL-checks before free(). I think I've almost scrubbed the
entire tree of these...

Revision 1.7 / (download) - annotate - [select for diffs], Sat Oct 24 11:54:50 2015 UTC (8 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.6: +232 -12 lines
Diff to previous 1.6 (colored)

Implement the missing bits to parse the other MRT message types.
Printing bgp messages is still missing lots but at least it is a start.
I onced abused tcpdump's bgp protocol handler for this but that is an ugly hack.

Revision 1.6 / (download) - annotate - [select for diffs], Fri Jan 9 08:09:39 2015 UTC (9 years, 5 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.5: +7 -5 lines
Diff to previous 1.5 (colored)

move the ignore-microsec-timestamp bit from mrt_parse to mrt_parse_dump_mp
fixes a coredump reachable via show mrt file
From: Benjamin Baier <programmer at netzbasis dot de>, ok claudio

Revision 1.5 / (download) - annotate - [select for diffs], Wed Oct 8 16:15:37 2014 UTC (9 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored)

Use reallocarray() throughout to spot multiplicative int overflow.
ok henning benno

Revision 1.4 / (download) - annotate - [select for diffs], Tue May 7 01:32:12 2013 UTC (11 years, 1 month ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.3: +5 -3 lines
Diff to previous 1.3 (colored)

fix some leaks in error paths
ok claudio@

Revision 1.3 / (download) - annotate - [select for diffs], Mon Mar 26 20:40:32 2012 UTC (12 years, 2 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.2: +57 -60 lines
Diff to previous 1.2 (colored)

Add a function to extract an address instead of copying the same code over
and over again. Also allow the dump attr of struct mrt_parser to be NULL.

Revision 1.2 / (download) - annotate - [select for diffs], Tue Mar 6 07:52:32 2012 UTC (12 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.1: +8 -6 lines
Diff to previous 1.1 (colored)

Implement a better way to detect the encoding of the MP_REACH_NLRI attr.
Check the addr length value of the RFC 6396 encoding to decide if it is
one or not. While there try to make the comment more clear.

Revision 1.1 / (download) - annotate - [select for diffs], Wed Sep 21 10:37:51 2011 UTC (12 years, 8 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1

Make it possible to parse MRT table dumps (all 3 formats) and display
them like the show rib / show rib detail output. It is also possible
to filter the output. e.g.
   bgpctl show mrt file ./bview.20110914.1600 as 22512 204.209.0.0/16 all
OK sthen@, put it in henning@

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.