OpenBSD CVS

CVS log for src/usr.sbin/bgpd/mrt.c


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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.117 / (download) - annotate - [select for diffs], Wed May 22 08:41:14 2024 UTC (10 days, 10 hours ago) by claudio
Branch: MAIN
CVS Tags: HEAD
Changes since 1.116: +2 -2 lines
Diff to previous 1.116 (colored)

Convert bgpid, remote_bgpid and clusterid to host byte order.

Before the RDE used host byte order for remote_bgpid but all the other
code used network byte order. The reason for that was that bgpid was
initially an IPv4 address but since RFC 6286 in 2011 this is much more
relaxed and so it makes more sense to just treat them as numbers and
so host byte order.

OK tb@

Revision 1.116 / (download) - annotate - [select for diffs], Fri Jul 14 10:30:53 2023 UTC (10 months, 2 weeks ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4
Changes since 1.115: +276 -257 lines
Diff to previous 1.115 (colored)

Cleanup mrt message handling. Remove the DUMP_XYZ() macros and replace
them with direct calls to for example ibuf_add_n16(). Further cleanup
the error handling and use goto fail in most places. Remove many of the
error messages and combine all the possible ibuf errors in one place.
For this remove most warnings from internal functions (also mark all
internal helper functions with static to make that more obvious).
There are still some cases where an error will result in to warnings but
those errors are unreachable in normal operations.
OK tb@

Revision 1.115 / (download) - annotate - [select for diffs], Wed Jul 12 14:45:42 2023 UTC (10 months, 3 weeks ago) by claudio
Branch: MAIN
Changes since 1.114: +19 -21 lines
Diff to previous 1.114 (colored)

Update OpenBGPD to use new ibuf API.

This replaces the old way of using a static buffer and a len to build
UPDATEs with a pure ibuf solution. The result is much cleaner and a lot
of almost duplicate code can be removed because often a version for ibufs
and one for this static buffer was implemented (e.g. for mrt or bgpctl).
With and OK tb@

Revision 1.114 / (download) - annotate - [select for diffs], Wed Apr 19 09:03:00 2023 UTC (13 months, 2 weeks ago) by claudio
Branch: MAIN
Changes since 1.113: +10 -1 lines
Diff to previous 1.113 (colored)

Add minimal support for flowspec in the table-mp MRT format.
In general people should use table-v2 which handles flowspec just fine.
OK tb@

Revision 1.113 / (download) - annotate - [select for diffs], Tue Mar 28 15:17:34 2023 UTC (14 months ago) by claudio
Branch: MAIN
Changes since 1.112: +8 -12 lines
Diff to previous 1.112 (colored)

Instead of exracting the prefix into a bgpd_addr and passing that to
prefix_write() rename prefix_write() to pt_write() and pass a pt_entry to
the function. Removes an extra conversion step.
OK tb@

Revision 1.112 / (download) - annotate - [select for diffs], Tue Mar 28 09:52:08 2023 UTC (14 months ago) by claudio
Branch: MAIN
Changes since 1.111: +19 -18 lines
Diff to previous 1.111 (colored)

Refactor mrt_dump_entry_v2() to use a dynamic buffer to hold the prefix.
Especially flowspec "prefixes" are variable size and so using a static
buffer there is not going to work in the long run.
OK tb@

Revision 1.111 / (download) - annotate - [select for diffs], Wed Dec 28 21:30:16 2022 UTC (17 months ago) by jmc
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.110: +4 -4 lines
Diff to previous 1.110 (colored)

spelling fixes; from paul tagliamonte
any parts of his diff not taken are noted on tech

Revision 1.110 / (download) - annotate - [select for diffs], Thu Sep 1 13:23:24 2022 UTC (21 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.109: +30 -12 lines
Diff to previous 1.109 (colored)

Switch the rde_peer hashtable and peer list to a single RB tree.
Only the RDE used a hashtable for lookups while the session engine
switched from a list to RB tree some time ago.
Use peer_foreach() in the mrt code instead of passing the peer list
as an argument.
OK benno@ tb@

Revision 1.109 / (download) - annotate - [select for diffs], Wed Aug 17 15:15:26 2022 UTC (21 months, 2 weeks ago) by claudio
Branch: MAIN
Changes since 1.108: +4 -4 lines
Diff to previous 1.108 (colored)

Convert bzero() to memset(), bcmp() to memcmp() and bcopy() to memcpy().

The memory regions passed to memcpy() can not overlap so no need for memmove().
OK tb@ deraadt@

Revision 1.108 / (download) - annotate - [select for diffs], Thu Jul 28 13:11:48 2022 UTC (22 months ago) by deraadt
Branch: MAIN
Changes since 1.107: +2 -2 lines
Diff to previous 1.107 (colored)

whitespace found during a read-thru; ok claudio

Revision 1.107 / (download) - annotate - [select for diffs], Tue Mar 22 10:53:08 2022 UTC (2 years, 2 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.106: +3 -3 lines
Diff to previous 1.106 (colored)

Switch from a LIST to TAILQ for the structure to store prefixes on a
rib_entry. Mostly mechanical, this simplifies prefix_insert() and
prefix_remove() since the redo queue can now just use TAILQ_INSERT_TAIL().
rde_softreconfig_sync_reeval() needs to use TAILQ_CONCAT() to move
the list of prefixes over to the local TAILQ_HEAD to reapply them later.
OK tb@

Revision 1.106 / (download) - annotate - [select for diffs], Sun Feb 6 09:51:19 2022 UTC (2 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.105: +45 -45 lines
Diff to previous 1.105 (colored)

Switch from u_intX_t types to stdint.h uintX_t. Mostly mechanical with
a few reindents.
OK florian@ tb@

Revision 1.105 / (download) - annotate - [select for diffs], Fri Sep 3 07:48:24 2021 UTC (2 years, 8 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.104: +255 -64 lines
Diff to previous 1.104 (colored)

Add add-path support in MRT dumps (RFC8050).

This works for table-v2 formats and also for the all and update dumps.
For the latter the code needs to inspect the UPDATE message to guess if
add-path is used in that message or not.  Add-path can be enabled per
AFI and alters the NLRI encoding without any way to detect.
For table dumps we decided to dump RIB_GENERIC entires the same way as
gobgp and not use the encoding from the RFC. The RFC specifies that
RIB_GENERIC (non-IPv4/v6) entries in a way that is not only different
but also against the normal codeflow. Only gobgp seems to implement
RIB_GENERIC encoding (neither bird nor frr/quagga do) and so it makes
sense to follow their way.

OK benno@

Revision 1.104 / (download) - annotate - [select for diffs], Thu Jun 24 10:04:05 2021 UTC (2 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.103: +8 -4 lines
Diff to previous 1.103 (colored)

aspath_deflate() did free the passed in data but since the way aspaths
are processed in the Adj-RIB-Out this is no longer needed since the passed
in pointer is still referenced and is not allowed to be freed.
Adjust the mrt code similar to how up_generate_attr() uses aspath_deflate().
OK sthen@

Revision 1.103 / (download) - annotate - [select for diffs], Thu Jan 9 11:55:25 2020 UTC (4 years, 4 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.102: +7 -4 lines
Diff to previous 1.102 (colored)

Convert the lastchange of a prefix from time(NULL) to getmonotime() which
uses CLOCK_MONOTONIC. Convert the control messages to return the relative
age of the prefix instead of the absolute age. Adjust the mrt dump code
to stil dump the route age in seconds since epoch as defined in the RFC.
With this all times in bgpd are now based on CLOCK_MONOTONIC.
OK denis@

Revision 1.102 / (download) - annotate - [select for diffs], Wed Jan 8 18:01:22 2020 UTC (4 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.101: +2 -2 lines
Diff to previous 1.101 (colored)

eye burning whitespace

Revision 1.101 / (download) - annotate - [select for diffs], Tue Dec 31 12:02:47 2019 UTC (4 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.100: +5 -4 lines
Diff to previous 1.100 (colored)

In mrt_dump_hdr_rde() use clock_gettime(CLOCK_REALTIME, ) like it is done
in mrt_dump_hdr_se(). Table dumps don't need time.tv_nsec like used in
the _ET formats like for message and state changes but it keeps to code
similar.

Revision 1.100 / (download) - annotate - [select for diffs], Thu Aug 8 20:06:29 2019 UTC (4 years, 9 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.99: +2 -2 lines
Diff to previous 1.99 (colored)

Use O_CLOEXEC or SOCK_CLOEXEC on every open or socket call. Even though
some sockets are open for a short time it does not hurt and it ensures
that there is no file descriptor leak.
OK deraadt@ bluhm@

Revision 1.99 / (download) - annotate - [select for diffs], Wed Jul 24 08:58:24 2019 UTC (4 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.98: +38 -16 lines
Diff to previous 1.98 (colored)

Cleanup and fix some obvious shortcomings in the mrt dump code. Also
implement the missing bits to dump MPLS VPN prefixes in the table-mp
case. Missing support noticed by benno@ because of King Bula warning.
OK benno@

Revision 1.98 / (download) - annotate - [select for diffs], Wed Jul 17 10:13:26 2019 UTC (4 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.97: +3 -10 lines
Diff to previous 1.97 (colored)

Change the Adj-RIB-Out to a per peer set of RB trees. The way RIB data
structures are linked does not scale for the Adj-RIB-Out and so inserts
and updates into the Adj-RIB-Out did not scale because of some linear
list traversals in hot paths.

A synthetic test with 4000 peers announcing one prefix each showed that
the initial convergence time dropped from around 1 hout to around 6min.

Note: because the Adj-RIB-Out is now per peer the order in which prefixes
are dumped in 'bgpctl show rib out' changed.

Tested and OK job@, benno@, phessler@

Revision 1.97 / (download) - annotate - [select for diffs], Tue Jun 25 21:33:55 2019 UTC (4 years, 11 months ago) by benno
Branch: MAIN
Changes since 1.96: +2 -2 lines
Diff to previous 1.96 (colored)

ibuf_write() returns -1 on error.
ok claudio@

Revision 1.96 / (download) - annotate - [select for diffs], Mon Jun 24 06:39:49 2019 UTC (4 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.95: +16 -8 lines
Diff to previous 1.95 (colored)

mrt dumps lost communities after the community rewrite.
Readd them by dumping them explicitly.
Tested by and OK benno@

Revision 1.95 / (download) - annotate - [select for diffs], Sat Jun 22 05:44:05 2019 UTC (4 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.94: +12 -12 lines
Diff to previous 1.94 (colored)

Add a direct pointer from struct prefix to struct pt_entry.
This changes makes it possible to not use the struct rib_entry pointer
which will be used to optimize the Adj-RIB-Out.
Also adjust pt_ref() and pt_unref() so that the code can be written
a bit more compact. Also prefix_cmp() no longer needs to go via
rib_compare() and calls pt_prefix_cmp() directly.
OK phessler@

Revision 1.94 / (download) - annotate - [select for diffs], Thu Mar 7 07:42:36 2019 UTC (5 years, 2 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.93: +2 -4 lines
Diff to previous 1.93 (colored)

Do a better job at cleaning up the config on shutdown. Remove bits that
were missed before (e.g. network related objects). This helps to detect
memory leaks.
Start using new_config() and free_config() in all places where bgpd_config
structure are used. This way the struct is properly initialised and cleaned
up. Introduce copy_config() to only copy the values into the other struct
leaving the pointers as they were.
Looks good to benno@

Revision 1.93 / (download) - annotate - [select for diffs], Wed Feb 27 04:31:56 2019 UTC (5 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.92: +13 -19 lines
Diff to previous 1.92 (colored)

Convert the remote and local addresses in struct peer to be bgpd_addrs
instead of sockaddr_storage. This again helps protability and simplifies
some code. sa2addr now takes an optional pointer to return the port of
the sockaddr.
OK benno@

Revision 1.92 / (download) - annotate - [select for diffs], Thu Feb 14 13:13:33 2019 UTC (5 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.91: +6 -5 lines
Diff to previous 1.91 (colored)

mrt_timeout should just return -1 when there is no timeout set instead
of some strange maximum.  The poll loop in bgpd.c already limits the
maximum wait time so there is no need to double it.
While there switch to using time_t for the calculation.
OK phessler@

Revision 1.91 / (download) - annotate - [select for diffs], Thu Feb 14 10:38:04 2019 UTC (5 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.90: +3 -4 lines
Diff to previous 1.90 (colored)

Revert part of last commit, this stuff is unrelated.

Revision 1.90 / (download) - annotate - [select for diffs], Thu Feb 14 10:34:54 2019 UTC (5 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.89: +5 -4 lines
Diff to previous 1.89 (colored)

Use -1 instead of the less portable INFTIM for the poll timeout.
Result is the same.

Revision 1.89 / (download) - annotate - [select for diffs], Mon Jan 21 02:07:56 2019 UTC (5 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.88: +8 -1 lines
Diff to previous 1.88 (colored)

Use Adj-RIB-Out to push UPDATE messages to peers instead of having another
set of RB trees of prefixes and atribute. Refactor most of the update code
which removes some strange buffer handling. By building the output queue
directly in the Adj-RIB-Out the top memory usage during startup is greatly
reduced which should help busy server.
Tested by phessler@ and myself

Revision 1.88 / (download) - annotate - [select for diffs], Sun Dec 30 13:53:07 2018 UTC (5 years, 5 months ago) by denis
Branch: MAIN
Changes since 1.87: +10 -1 lines
Diff to previous 1.87 (colored)

add support for IPv6 VPN routes

The kernel bits are missing as of now. With input from claudio@ and kn@

OK claudio@

Revision 1.87 / (download) - annotate - [select for diffs], Wed Oct 24 08:26:37 2018 UTC (5 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.86: +2 -4 lines
Diff to previous 1.86 (colored)

Major refactoring of the RIB handling code. Mainly change how the RIB is
walked. rib_dump_r() is now an internal function and instead the code gets
an additional callback for throttling the rib_dump code. This removes a
lot of similar code used to make sure the RDE is not walking to fast and
replaces it with simpler callbacks. The other big change is the removal
of struct rib pointers in other data structures. The rib pointers are not
stable because of a realloc() call happening when extending the array so
instead use the RIB ID as a reference.
Tested and OK denis@ and benno@

Revision 1.86 / (download) - annotate - [select for diffs], Tue Jul 24 10:10:58 2018 UTC (5 years, 10 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.85: +4 -4 lines
Diff to previous 1.85 (colored)

Use prefix_nexthop() to access the nexthop instead of dereferencing the
field in asp directly. This is a step to move the prefix from rde_aspath
to struct prefix.
OK benno@

Revision 1.85 / (download) - annotate - [select for diffs], Tue Jul 17 07:02:11 2018 UTC (5 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.84: +13 -11 lines
Diff to previous 1.84 (colored)

Switch to MSG_PROTOCOL_BGP4MP_ET formats for update and state mrt messages.
The _ET format adds an additional microsecond time field which makes those
message dumps more informative. The various table dumps are not modified
since there the time especially between entries plays a secondary role.
OK benno@

Revision 1.84 / (download) - annotate - [select for diffs], Mon Feb 5 03:55:54 2018 UTC (6 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.83: +31 -25 lines
Diff to previous 1.83 (colored)

Change struct prefix a bit. Make the aspath pointer opaque and remove the
direct pointer to the pt_prefix struct. To getter functions prefix_aspath()
and prefix_peer() added to make access of the opaque pointers possible.
Looks good henning@ and benno@

Revision 1.83 / (download) - annotate - [select for diffs], Sat May 27 10:55:45 2017 UTC (7 years ago) by phessler
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.82: +2 -2 lines
Diff to previous 1.82 (colored)

this expects 2byte ASN, so use that, instead of an asn that may or may not fit

noticed by and OK claudio@

Revision 1.82 / (download) - annotate - [select for diffs], Tue Jan 24 04:22:42 2017 UTC (7 years, 4 months ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.81: +2 -1 lines
Diff to previous 1.81 (colored)

sync log.c from relayd et al to bgpd.

there is still a little difference regarding handling of the verbosity
value that will be handled later.

ok claudio@ florian@

Revision 1.81 / (download) - annotate - [select for diffs], Wed Dec 30 12:06:56 2015 UTC (8 years, 5 months ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.80: +5 -9 lines
Diff to previous 1.80 (colored)

now that ibuf_free() checks for null, we can remove the check here.
ok mmcc@ millert@ tb@ claudio@

Revision 1.80 / (download) - annotate - [select for diffs], Sat Dec 5 18:28:04 2015 UTC (8 years, 5 months ago) by benno
Branch: MAIN
Changes since 1.79: +11 -11 lines
Diff to previous 1.79 (colored)

cleanup some log messages with wrong function names etc.
ok henning,claudio

Revision 1.79 / (download) - annotate - [select for diffs], Tue Oct 27 18:19:33 2015 UTC (8 years, 7 months ago) by mmcc
Branch: MAIN
Changes since 1.78: +2 -2 lines
Diff to previous 1.78 (colored)

calloc -> malloc when the memory is immediately overwritten with memcpy.

ok claudio@

Revision 1.78 / (download) - annotate - [select for diffs], Thu Aug 20 22:39:29 2015 UTC (8 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.77: +2 -3 lines
Diff to previous 1.77 (colored)

stdlib.h is in scope; do not cast malloc/calloc/realloc*
ok millert krw

Revision 1.77 / (download) - annotate - [select for diffs], Sat Apr 19 15:43:17 2014 UTC (10 years, 1 month ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7, OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.76: +4 -2 lines
Diff to previous 1.76 (colored)

Try to be clear why struct mrt_config nodes are allocated and
assigned to struct mrt pointers. I may need to rethink this later
but lets hope this does not confuse more people and analyzers.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Nov 13 20:41:01 2013 UTC (10 years, 6 months ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.75: +2 -2 lines
Diff to previous 1.75 (colored)

from claudio
"Let msgbuf_write return -1 with errno EAGAIN. The users then must
check if this was the case and readd the event or poll again.  The
current handling in the imsg code is wrong for sure."

ok gilles, benno

Revision 1.75 / (download) - annotate - [select for diffs], Thu May 30 20:29:27 2013 UTC (11 years ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.74: +16 -9 lines
Diff to previous 1.74 (colored)

When removing "dump (all|updates)" from bgpd.conf and reloading, tell
the session engine to actually stop logging.
Found the hard way by benno@.

with & ok benno@
input & ok claudio@

Revision 1.74 / (download) - annotate - [select for diffs], Mon May 20 11:25:02 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.73: +3 -2 lines
Diff to previous 1.73 (colored)

Call pt_getaddr() a bit earlier so that addr.aid is available when first
accessed. Found by magic clang skill of blambert@

Revision 1.73 / (download) - annotate - [select for diffs], Thu Nov 15 18:06:36 2012 UTC (11 years, 6 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.72: +21 -21 lines
Diff to previous 1.72 (colored)

buf_* -> ibuf_* in various log entries to reflect correct function names.

ok claudio@

Revision 1.72 / (download) - annotate - [select for diffs], Sun Nov 6 10:29:05 2011 UTC (12 years, 6 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.71: +2 -1 lines
Diff to previous 1.71 (colored)

Add a #include that's currently picked up via another header that's
violating namespace rules

ok claudio@

Revision 1.71 / (download) - annotate - [select for diffs], Sat Sep 17 16:29:44 2011 UTC (12 years, 8 months ago) by claudio
Branch: MAIN
Changes since 1.70: +268 -41 lines
Diff to previous 1.70 (colored)

Implement new mrt table dump format as specified in draft-ietf-grow-mrt.
Tested with IP and IPv6 sessions and against the libbgpdump parser.
OK henning@

Revision 1.70 / (download) - annotate - [select for diffs], Thu Sep 2 14:03:21 2010 UTC (13 years, 9 months ago) by sobrado
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.69: +2 -2 lines
Diff to previous 1.69 (colored)

remove trailing spaces and tabs from source code; no binary changes
(verified by both sthen@ and me).

ok sthen@; "just commit it" claudio@

Revision 1.69 / (download) - annotate - [select for diffs], Fri Jun 4 10:13:00 2010 UTC (14 years ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.68: +64 -15 lines
Diff to previous 1.68 (colored)

It is actually possible to dump IPv6 tables with "dump table" and not
"dump table-mp" but this is only possible if the session and the prefixes
are from the same address family. Evil little hackery (especially the
IPv6 nexthop encoding) but seems to work according to libbgpdump.

Revision 1.68 / (download) - annotate - [select for diffs], Wed May 26 13:56:07 2010 UTC (14 years ago) by nicm
Branch: MAIN
Changes since 1.67: +56 -56 lines
Diff to previous 1.67 (colored)

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt

Revision 1.67 / (download) - annotate - [select for diffs], Thu Apr 22 08:21:18 2010 UTC (14 years, 1 month ago) by claudio
Branch: MAIN
Changes since 1.66: +11 -3 lines
Diff to previous 1.66 (colored)

Depending on capa.neg.as4byte (bgp session is using 4-byte AS number
extension) we need to switch between _AS4 and non _AS4 types. The
non _AS4 mrt types are totaly confused by 4-byte AS_PATH attributes since
they expect 2-byte ones (and vice versa).
Problem found and fix tested by Xiaoliang Zhao (xzhao at cernet edu cn).

Revision 1.66 / (download) - annotate - [select for diffs], Tue Dec 1 14:28:05 2009 UTC (14 years, 6 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.65: +15 -13 lines
Diff to previous 1.65 (colored)

Use an artificial address family id in struct bgpd_addr and almost everywhere
else. Adds conversion functions to map AFI/SAFI and the Unix AF_ values
from and into AID used in bgpd.  This is needed to support things like MPLS
VPN and other upcomming changes that need to play a lot with AFI/SAFI pairs.
Mostly mechanical change, henning@ has no particular issues with this.
Must go in so that I can continue working.

Revision 1.65 / (download) - annotate - [select for diffs], Mon Oct 26 09:27:58 2009 UTC (14 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.64: +3 -2 lines
Diff to previous 1.64 (colored)

Better error handling when doing mrt dumps (e.g. when there is no more space
on the disk). Before the SE spinned and the RDE may even crash in these events.
Found by Elisa Jasinska. OK henning@

Revision 1.64 / (download) - annotate - [select for diffs], Sun Jul 12 15:36:41 2009 UTC (14 years, 10 months ago) by jsg
Branch: MAIN
Changes since 1.63: +2 -2 lines
Diff to previous 1.63 (colored)

Remove a semicolon at the end of an if statement so the
test if a buffer isn't NULL before freeing has effect.

This was harmless as it is in a failure case and free(NULL) is
valid in userland.

Revision 1.63 / (download) - annotate - [select for diffs], Mon Jun 29 12:22:16 2009 UTC (14 years, 11 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.62: +12 -12 lines
Diff to previous 1.62 (colored)

Unfuck mrt table dumps and plug a memory leak while there.

Revision 1.62 / (download) - annotate - [select for diffs], Fri Jun 5 17:36:49 2009 UTC (15 years ago) by claudio
Branch: MAIN
Changes since 1.61: +11 -11 lines
Diff to previous 1.61 (colored)

Change the way we do mrt dumps in the rde (from the retarded only one dump
possible to as many as you like). The mrt dumps are now done with the same
tree walking code as the control messages. Makes the RDE respond a bit faster
and use less memory while dumping.

Revision 1.61 / (download) - annotate - [select for diffs], Thu Jun 4 22:08:19 2009 UTC (15 years ago) by claudio
Branch: MAIN
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored)

Make mrt understand alternate RIB plus remove some other static rib references.
There is still a problem with the mrt dumps because we only allow one in the
RDE. This needs some additional work.

Revision 1.60 / (download) - annotate - [select for diffs], Sun May 17 12:25:15 2009 UTC (15 years ago) by claudio
Branch: MAIN
Changes since 1.59: +3 -6 lines
Diff to previous 1.59 (colored)

Rework most of the RDE to allow multiple RIBs. This is mostly preparation
work by changing the way the RDE DB is built. struct prefix and struct
pt_entry are simplified and extended with a rib_entry where the decision
tree is run on. From now on a prefix can only reside on one particular RIB
which simplifies the code a bit. Currently there are two fixed ribs
(adj-rib-in and the local-rib) which needs to be made more dynamic in
upcomming commits.
This is work in progress, the RDE seems to work for me and sthen@ (no flames
comming out of our testrouters but there is still a lot missing)
Move into the tree to simplify developement -- henning@

Revision 1.59 / (download) - annotate - [select for diffs], Wed Apr 29 20:04:30 2009 UTC (15 years, 1 month ago) by claudio
Branch: MAIN
Changes since 1.58: +14 -17 lines
Diff to previous 1.58 (colored)

de-static some functions. Helps handling the monster change I'm working on.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Mar 19 07:00:06 2009 UTC (15 years, 2 months ago) by claudio
Branch: MAIN
Changes since 1.57: +277 -301 lines
Diff to previous 1.57 (colored)

First big chunk of mrt rewrite. Simplifies code hopefully and fixes table
dumps that were wrong because of the 4byte AS support. Dumps I took seemed
to work so far. "Put it in" henning@

Revision 1.57 / (download) - annotate - [select for diffs], Wed Mar 18 19:45:09 2009 UTC (15 years, 2 months ago) by claudio
Branch: MAIN
Changes since 1.56: +4 -3 lines
Diff to previous 1.56 (colored)

Correctly check for MRT_TABLE_DUMP_MP and don't send the config to the SE.
Make mrt table-mp dumps actually work. Found on the plane from NRT to ZRH.
OK henning@

Revision 1.56 / (download) - annotate - [select for diffs], Fri Mar 13 06:25:04 2009 UTC (15 years, 2 months ago) by claudio
Branch: MAIN
Changes since 1.55: +6 -15 lines
Diff to previous 1.55 (colored)

Next step in mrt cleanup. Switch buf_write to a smarter version of itself.
Doing more the stuff msgbuf_write does and switch the only user -- mrt --
over to use this simpler way of writing out stuff.

Revision 1.55 / (download) - annotate - [select for diffs], Fri Mar 13 05:43:50 2009 UTC (15 years, 2 months ago) by claudio
Branch: MAIN
Changes since 1.54: +17 -24 lines
Diff to previous 1.54 (colored)

Move mrt code over to use the msgbuf way of queuing buffers instead of rolling
an own version. More cleanup to come.

Revision 1.54 / (download) - annotate - [select for diffs], Thu Feb 19 21:34:40 2009 UTC (15 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.53: +2 -2 lines
Diff to previous 1.53 (colored)

Use a bob sized header for IPv6 not the default pedro sized one.
Seems like nobody ever tried to dump IPv6 tables. Found while reworking this
code.

Revision 1.53 / (download) - annotate - [select for diffs], Mon Apr 23 13:04:24 2007 UTC (17 years, 1 month ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.52: +8 -8 lines
Diff to previous 1.52 (colored)

Make bgpd 4-byte AS compatible. All internal representations of AS numbers
are now 4-byte instead of the old 2-byte numbers. The only exception are
communities because they can not be switched. The RDE will inflate and deflate
the ASPATH and AGGREGATOR attributes on demand and create the NEW_ASPATH and
NEW_AGGREGATOR field whenever needed. Both old and new stile sessions are
supported and can be mixed. Currently new stile sessions with the 4-byte AS
number capability turned on are only enabled if one of the AS numbers involved
is a 4-byte one.
This is based on an initial diff by Geoff Huston gih (at) apnic (dot) net
Cleanup, testing and bug-fixes by myself (via AS 3.10).
Currently mrt table dumps are producing incompatible output this will be fixed
afterwards -- this diff is already big enough.

"get it in if you think it is ready" henning@

Revision 1.52 / (download) - annotate - [select for diffs], Mon Feb 12 19:15:14 2007 UTC (17 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1
Changes since 1.51: +32 -7 lines
Diff to previous 1.51 (colored)

Switch address and AS fields in mrt dump messages for incoming traffic so
that source and destination match the actual traffic flow.
Found and initial diff by Adam Chappell (Adam.Chappell at interoute dot com)

Revision 1.51 / (download) - annotate - [select for diffs], Mon Feb 12 13:12:30 2007 UTC (17 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.50: +5 -5 lines
Diff to previous 1.50 (colored)

Fix some log_warn() messages.

Revision 1.50 / (download) - annotate - [select for diffs], Wed Feb 8 14:49:58 2006 UTC (18 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.49: +6 -2 lines
Diff to previous 1.49 (colored)

For now dump only stuff from the local-RIB into mrt table dumps.
Issue found by Andre Oppermann.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Jan 5 16:00:07 2006 UTC (18 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.48: +12 -5 lines
Diff to previous 1.48 (colored)

Cache optional BGP attributes (mostly communities) and use a simple
pointer plus a ref counter to link the attributes to the path object.
Saves +/- 10M on 11 full feeds. Looks good Henning

Revision 1.48 / (download) - annotate - [select for diffs], Tue Nov 29 21:11:07 2005 UTC (18 years, 6 months ago) by claudio
Branch: MAIN
Changes since 1.47: +5 -3 lines
Diff to previous 1.47 (colored)

Add a flags field to struct prefix which will be used shortly. Remove the peer
pointer so that the size does not grow. Adding 4 bytes to struct prefix would
result in 64MB more memory usage on one of my systems.

Revision 1.47 / (download) - annotate - [select for diffs], Thu Dec 23 16:09:26 2004 UTC (19 years, 5 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (colored)

KNF

Revision 1.46 / (download) - annotate - [select for diffs], Thu Nov 11 13:06:44 2004 UTC (19 years, 6 months ago) by claudio
Branch: MAIN
Changes since 1.45: +3 -3 lines
Diff to previous 1.45 (colored)

Store the local v4 and v6 address of a session. For IPv4 sessions the first
IPv6 address with global scope of the interface used by the session is used.
In any case the local endpoint of the session is used for one of the two no
matter what scope.
OK henning@

Revision 1.45 / (download) - annotate - [select for diffs], Thu Sep 16 17:36:29 2004 UTC (19 years, 8 months ago) by henning
Branch: MAIN
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 (colored)

imsg API cleanup:
-kill imsg_compose_pid, imsg_compose_fdpass and imsg_create_pid
-extend the original imsg_compose/_create API to take pid & fd too
-make imsg_compose do imsg_create + imsg_add + imsg_close instead of
 duplicating the code
-adjust all callers to the new API
ok claudio

Revision 1.44 / (download) - annotate - [select for diffs], Fri Aug 13 14:03:20 2004 UTC (19 years, 9 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.43: +181 -19 lines
Diff to previous 1.43 (colored)

Fix minor issues with IPv6 dumps and add a function for dumping the RIB table
protocol independent. This new dump format is not (yet) supported by the
mrtd route_btoa tool. OK henning@

Revision 1.43 / (download) - annotate - [select for diffs], Wed Aug 11 16:48:45 2004 UTC (19 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.42: +27 -19 lines
Diff to previous 1.42 (colored)

mrt dumps for cloned sessions did not work because the wrong address was used.
OK henning@

Revision 1.42 / (download) - annotate - [select for diffs], Wed Aug 11 09:37:11 2004 UTC (19 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored)

buf_write() returns -1 on error and -2 on connection closed. Treat both
as errors for mrt dumps.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Aug 10 13:50:10 2004 UTC (19 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.40: +8 -1 lines
Diff to previous 1.40 (colored)

Always free message buffer on error.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Aug 10 13:46:28 2004 UTC (19 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.39: +35 -7 lines
Diff to previous 1.39 (colored)

Support IPv6 in message and state transition dumps. Table dumps still
unsupported. OK henning@

Revision 1.39 / (download) - annotate - [select for diffs], Fri Aug 6 12:04:08 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.38: +17 -9 lines
Diff to previous 1.38 (colored)

Monster diff to get one step closer to IPv6 support.
Cleanup path attribute handling. First of all kill struct attr_flags, all
those infos are now in struct rde_aspath. Second move attribute parser
functions into rde.c, rde_attr.c is shared between bgpd and bgpctl.
Third reimplementation of the nexthop handling. Make it IPv6 ready and
fix some major bug relating to "set nexthop".
henning@ OK if it breaks nothing

Revision 1.38 / (download) - annotate - [select for diffs], Thu Aug 5 16:26:56 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.37: +2 -2 lines
Diff to previous 1.37 (colored)

struct prefix has a pointer to the peer so use it everywhere directly instead
of the detour via aspath.

Revision 1.37 / (download) - annotate - [select for diffs], Tue Aug 3 14:00:15 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored)

Make mrt dumps mrt compliant. I already fixed one of those but this one
slipped my attention. Now all bgpd dumps can be read with mrt's route_btoa.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Jul 28 16:00:02 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.35: +2 -28 lines
Diff to previous 1.35 (colored)

The hole dance to close a mrt file after fd passing in the parent is not
needed as the fd is closed while beeing passed. looks good henning@

Revision 1.35 / (download) - annotate - [select for diffs], Wed Jul 7 21:18:06 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.34: +2 -2 lines
Diff to previous 1.34 (colored)

Stupid typo that may cause a lot of pain. Found by Patrick Latifi. Thanks.

Revision 1.34 / (download) - annotate - [select for diffs], Wed Jul 7 21:15:18 2004 UTC (19 years, 10 months ago) by claudio
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

Bad interpretation of the oh so well documented mrt spec. Found by
Stefan Wahl.

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jul 3 17:19:59 2004 UTC (19 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.32: +171 -337 lines
Diff to previous 1.32 (colored)

Switch mrt dumping to fd passing. This gives some speed up when extensive
dumping is done. Acctually mrt dumps were broken because of the fd passing.
The nice side effect is a much cleaner code, especially in the parent process.
OK henning@

Revision 1.32 / (download) - annotate - [select for diffs], Tue Jun 22 20:28:58 2004 UTC (19 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.31: +4 -2 lines
Diff to previous 1.31 (colored)

Make the RDE IPv6 ready missing is the message handling. The internal
prefix tree changed form a hash table to a per AF RB tree.
OK henning@ some ideas are from Brent Graveland.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jun 20 18:35:12 2004 UTC (19 years, 11 months ago) by henning
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30 (colored)

at least somewhat consistently name the TAILQ_ENTRYs... this confused me
more than once

Revision 1.30 / (download) - annotate - [select for diffs], Thu Apr 29 19:56:04 2004 UTC (20 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.29: +9 -9 lines
Diff to previous 1.29 (colored)

sock -> fd; ok henning

Revision 1.29 / (download) - annotate - [select for diffs], Wed Apr 28 01:13:36 2004 UTC (20 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

spacing

Revision 1.28 / (download) - annotate - [select for diffs], Fri Feb 27 20:53:56 2004 UTC (20 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.27: +3 -2 lines
Diff to previous 1.27 (colored)

remove unneded peer pointer in struct prefix and change a in_addr_t to
struct in_addr. OK henning@

Revision 1.27 / (download) - annotate - [select for diffs], Wed Feb 25 19:48:18 2004 UTC (20 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.26: +44 -96 lines
Diff to previous 1.26 (colored)

Rewrite some parts of the mrt dump handling. It is no longer possible to
dump the filtered updates but therefore it is now possible to dump per
neighbor and also to dump the outgoing messages. OK henning@

Revision 1.26 / (download) - annotate - [select for diffs], Thu Feb 19 13:54:58 2004 UTC (20 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (colored)

Make the code more portable. Add some missing header files and make the use
of the queue(3) makros more portable. OK henning@ some time ago.

Revision 1.25 / (download) - annotate - [select for diffs], Mon Feb 2 21:29:50 2004 UTC (20 years, 4 months ago) by henning
Branch: MAIN
Changes since 1.24: +5 -5 lines
Diff to previous 1.24 (colored)

* use macro expansion instead of hardcoding 'buf'.
From: Patrick Latifi <pat@eyeo.org>, claudio ok

Revision 1.24 / (download) - annotate - [select for diffs], Tue Jan 27 16:49:53 2004 UTC (20 years, 4 months ago) by henning
Branch: MAIN
Changes since 1.23: +6 -6 lines
Diff to previous 1.23 (colored)

use a struct bgpd_addr instead of sockaddr_in for peer_config->local_addr and
->remote_addr for easier multiprotocol support

ok claudio@

Revision 1.23 / (download) - annotate - [select for diffs], Thu Jan 22 20:34:56 2004 UTC (20 years, 4 months ago) by henning
Branch: MAIN
Changes since 1.22: +27 -27 lines
Diff to previous 1.22 (colored)

use log_warnx and log_info. reclassify a few messages in the process and fix
a few messages.

ok claudio@

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jan 11 21:47:20 2004 UTC (20 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

Move all struct in_addr to either struct bgpd_addr or in_addr_t whichever
is more appropriate. The rde uses now in most cases struct bgpd_addr.
OK henning@

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 11 01:00:07 2004 UTC (20 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.20: +13 -15 lines
Diff to previous 1.20 (colored)

The buffer changes produced some fallout in the mrt code.
Wait until all data has been written out before closing the file and fix
some obvious misstakes. OK henning@

Revision 1.20 / (download) - annotate - [select for diffs], Sat Jan 10 16:20:29 2004 UTC (20 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.19: +84 -8 lines
Diff to previous 1.19 (colored)

RDE update generation. First we queue all updates and withdraws on a per
peer basis. A queue runner will dequeue and package those messages to valid
bgp UPDATE messages and send them to the SE.
Not yet done is per peer type attribute handling (like aspath prepends and
nexthop modifications) and the queue runner could be a tad smarter. All in
all this gives us a good starting point for the missing parts.
OK henning@

Revision 1.19 / (download) - annotate - [select for diffs], Wed Jan 7 12:34:23 2004 UTC (20 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

Duh. Fixing stupid braino. OK henning@

Revision 1.18 / (download) - annotate - [select for diffs], Tue Jan 6 21:48:07 2004 UTC (20 years, 4 months ago) by claudio
Branch: MAIN
Changes since 1.17: +15 -2 lines
Diff to previous 1.17 (colored)

Free buf on error and correct of by one in strlcpy.
From Patrick Latifi <pat at eyeo.org> OK henning@

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jan 6 10:51:14 2004 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored)

2004 OK henning@

Revision 1.16 / (download) - annotate - [select for diffs], Tue Jan 6 10:42:50 2004 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.15: +31 -4 lines
Diff to previous 1.15 (colored)

Fix reopening of dump files.
OK henning@

Revision 1.15 / (download) - annotate - [select for diffs], Mon Jan 5 22:57:58 2004 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.14: +399 -194 lines
Diff to previous 1.14 (colored)

Big overhaul of the mrt code.
Dumping of incomming bgp messages is now possible and dumping the (not yet)
filtered updates works too. Per neighbor dumps are still missing.
OK henning@

Revision 1.14 / (download) - annotate - [select for diffs], Thu Jan 1 21:18:13 2004 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.13: +16 -16 lines
Diff to previous 1.13 (colored)

conf -> mconf
causes a conflicht with upcoming changes

Revision 1.13 / (download) - annotate - [select for diffs], Fri Dec 26 18:07:32 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.12: +17 -17 lines
Diff to previous 1.12 (colored)

when this project started and i added the fatal() function, I made it take
the error number as parameter instead of accessing errno, because in one
place the error number was not in errno but fetched from a socket.
now, of course it makes much more sense to just set errno to the error number
just fecthed in this one place instead of having hundreds of fatal() calls
all transfer the errno round and round and round...
fix this, and also provide a fatalx, which does not care for errno and doesn't
invoke strerror.
oh, btw, in the place where we fetch the err # from the socket, we don't
call fatal anymore anyway...

Revision 1.12 / (download) - annotate - [select for diffs], Fri Dec 26 00:34:01 2003 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.11: +9 -2 lines
Diff to previous 1.11 (colored)

In the mrt state machine one state was forgotten. This caused the parent
process to quit it a fatal buf_close error message.
Noticed and reported by jakob@
OK henning@

Revision 1.11 / (download) - annotate - [select for diffs], Thu Dec 25 17:35:53 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.10: +1 -2 lines
Diff to previous 1.10 (colored)

free where it was allocated; much easier to verify

Revision 1.10 / (download) - annotate - [select for diffs], Wed Dec 24 13:28:02 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

handle write() returning 0 correctly, adjust the msgbuf API appropriately,
and make all callers cope.

Revision 1.9 / (download) - annotate - [select for diffs], Tue Dec 23 19:14:49 2003 UTC (20 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

spacing

Revision 1.8 / (download) - annotate - [select for diffs], Sun Dec 21 23:26:37 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.7: +12 -12 lines
Diff to previous 1.7 (colored)

wrap read & write buffers for imsgs into a struct.
finally gives us read buffers per pipe instead of per process, eleminating
a possible race.
also gets us a real imsg_init() that does all the boring init work

Revision 1.7 / (download) - annotate - [select for diffs], Sun Dec 21 22:16:53 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.6: +36 -44 lines
Diff to previous 1.6 (colored)

overhaul the write buffering code.
introduce msgbuf API and bundle all info needed for the write buffers in a
struct msgbuf.
also switch to a write queue per handled connection (each bgp session, each
pipe) instead of one big one.
fixes some subtle problems and is overall nicer.

ok claudio@

Revision 1.6 / (download) - annotate - [select for diffs], Sun Dec 21 16:11:33 2003 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.5: +11 -8 lines
Diff to previous 1.5 (colored)

yet more from the castathon; most aspath functions where accessing non-
aligned memory (u_int16_t) therefor crashed the RDE on my sparc64. All
buffer specific functions use now void * instead of u_char * so most cast
are now history. Tested on sparc64 and i386. OK henning@

Revision 1.5 / (download) - annotate - [select for diffs], Sat Dec 20 21:43:45 2003 UTC (20 years, 5 months ago) by claudio
Branch: MAIN
Changes since 1.4: +5 -5 lines
Diff to previous 1.4 (colored)

knf. OK henning@

Revision 1.4 / (download) - annotate - [select for diffs], Sat Dec 20 21:14:55 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.3: +7 -7 lines
Diff to previous 1.3 (colored)

let buf_add take void *data instead of u_char *data and save a zillion
evil casts

Revision 1.3 / (download) - annotate - [select for diffs], Sat Dec 20 20:53:30 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN
Changes since 1.2: +5 -1 lines
Diff to previous 1.2 (colored)

few missing break; in default: cases in switch; one noticed by tedu@

Revision 1.2 / (download) - annotate - [select for diffs], Fri Dec 19 01:15:47 2003 UTC (20 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.1: +3 -2 lines
Diff to previous 1.1 (colored)

knf & 64-bit cleanup; henning ok

Revision 1.1 / (download) - annotate - [select for diffs], Wed Dec 17 11:46:54 2003 UTC (20 years, 5 months ago) by henning
Branch: MAIN

welcome, bgpd
started by me some time ago with moral support from theo, the proceeded up to
the point where the session engine worked correctly. claudio jeker joined
then and did a lot of work in the RDE.
it is not particulary usefull as application right now as parts are still
missing but is imported to enable more people to work on it.
status:
BGP sessions get established fine, OPEN messages and then KEEPALIVEs
exchanged etc. session FSM works fine; NOTIFICATIONs are handled fine, and
all connection drops etc I provoked get handled fine.
Incoming UPDATE messgages are parsed well and the data entered to the RIB,
the decision process is not yet there, neither is outgoing UPDATEs or sync
to the kernel routing table.

not connected to the builds yet.

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.