summaryrefslogtreecommitdiff
path: root/eigrpd/eigrp_structs.h
AgeCommit message (Collapse)Author
2023-03-24*: Rename `struct thread` to `struct event`Donald Sharp
Effectively a massive search and replace of `struct thread` to `struct event`. Using the term `thread` gives people the thought that this event system is a pthread when it is not Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-02-09*: auto-convert to SPDX License IDsDavid Lamparter
Done with a combination of regex'ing and banging my head against a wall. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-03-17*: require semicolon after DEFINE_QOBJ & co.David Lamparter
Again, see previous commits. Signed-off-by: David Lamparter <equinox@diac24.net>
2021-01-31eigrpd: Correctly set the mtu for eigrp packets sentDonald Sharp
This version of eigrp pre-calculated the eigrp metric to be a default of 1500 bytes, but unfortunately it had entered the byte order wrong. Modify the code to properly set the byte order according to the eigrp rfc as well as actually read in and transmit the mtu of the interface instead of hard coding it to 1500 bytes. Fixes: #7986 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-12eigrpd: Rename nexthop_entry and prefix_entry to better namesDonnie Savage
Rename struct eigrp_nexthop_entry to struct eigrp_route_descriptor Rename struct eigrp_prefix_entry to struct eigrp_prefix_descriptor Fix all the associated function names as well. Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Donnie SAvage <diivious@hotmail.com>
2021-01-12eigrpd: Move `struct eigrp_master` to eigrpd.hDonnie Savage
The `struct eigrp_master` data structure belongs in the eigrpd.h file. Move it over, in addition start forward thinking about the different TLV versions so we can track them better in the future. Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Donnie Savage <diivious@hotmail.com>
2019-12-04eigrpd, ospfd, pimd: Fix assumption that interface may not be upDonald Sharp
Commit: ddbf3e60604019d4b38d51226700e2244cc531b6 This commit modified the interface up handling code in ZAPI such that the zclient handled the decoding for you. Prior to this commit ospf assumed that it could use the old ifp pointer to know state before reading the stream. This lead to a situation where ospf would `smartly` track and do the right thing in this situation. This commit changed this assumption and in certain scenarios, say a interface was changed after it was already up would lead to situations where ospf would not properly handle the new interface up. Modify ospf to track data that is important to it in it's interface->info pointer. This code pattern was followed in both eigrp and pim. In eigrp's case it was just behaving weirdly in any event so fixing this pattern is not a big deal. In pim's case it was not properly using this so it's a no-op to fix. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06eigrpd: Create a socket per vrf for communicationDonald Sharp
Setup EIGRP to use a socket per vrf for communication amongst it's peers. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-08-06eigrpd: Add vrf_id to `struct eigrp`Donald Sharp
Initial setup of adding a vrf_id to the `struct eigrp`. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-06-14eigrpd: Fix endianness issue in packetsPawel Dembicki
Net prefixes in eigrp update packets is created and read without check host endianness. This patch use ntohl and htonl to read and write ip prefix from and to packet. Tested: x86, powerpc Signed-off-by: Pawel Dembicki <p.dembicki@wb.com.pl>
2019-02-11eigrp: Make the eigrp_interface have a prefix instead of a *prefixDonald Sharp
The prefix data structure was being freed yet still needed in the future and it's a fundamental part of the eigrp_interface data structure let's keep it there instead of having it be deleted and then not. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-01-01Merge pull request #3543 from donaldsharp/eigrp_router_id_is_the_beeRenato Westphal
Eigrp router id cleanup
2018-12-30eigrpd: eigrp usage of uint32_t to struct in_addr for router_id dataDonald Sharp
In eigrp we were using a uint32_t to hold the `struct in_addr` data for the router id values. This caused us to do unnecessary conversions pre and post for in/out. Let's just use the standard `struct in_addr` Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-28lib, rip, ripng, babel, eigrp: add ctx pointer to distribute apiPhilippe Guibert
a distribute_ctx context pointer is returned after initialisation to the calling daemon. this context pointer will be further used to do discussion with distribute service. Today, there is no specific problem with old api, since the pointer is the same in all the memory process. but the pointer will be different if we have multiple instances. Right now, this is not the case, but if that happens, that work will be used for that. distribute-list initialisation is split in two. the vty initialisation is done at global level, while the context initialisation is done for each routing daemon instance. babel daemon is being equipped with a routing returning the main babel instance. also, a delete routine is available when the daemon routing instance is suppressed. a list of contexts is used inside distribute_list. This will permit distribute_list utility to handle in the same daemon to handle more than one context. This will be very useful in the vrf context. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-09-22eigrpd: Fix eigrp crash on shut of a interfaceDonald Sharp
The eigrp interface structure was storing a pointer to the connected interface structure and on shutdown of an interface this would cause zebra to call eigrp back with a shutdown of that interface, as part of that operation the connected interface structure is being deleted, but eigrp was keeping a pointer to the connected structure. At the same time we were keeping the address of the connected structure and this is all we need, so keep a copy of that data and use that instead. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-03-27*: use C99 standard fixed-width integer typesQuentin Young
The following types are nonstandard: - u_char - u_short - u_int - u_long - u_int8_t - u_int16_t - u_int32_t Replace them with the C99 standard types: - uint8_t - unsigned short - unsigned int - unsigned long - uint8_t - uint16_t - uint32_t Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06*: conform with COMMUNITY.md formatting rules, via 'make indent'Lou Berger
Signed-off-by: Lou Berger <lberger@labn.net>
2017-10-28eigrpd: Fix an issue found with metric changeDonald Sharp
A past commit modified the change value to an enum but did not bother to fix all the places where change was used. Fix this. Additionally add some more output to the fsm prefix string about the change. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-10-24eigrpd: Convert topology list to a tableDonald Sharp
The EIGRP topology list is an extremely inefficient way to store data about the known routes. Convert to using a table. Signed-off-by: Donald Sharp <sharpd@cumulusnetorks.com>
2017-10-02eigrpd: Remove ei mapping to connected routesDonald Sharp
We need one struct eigrp_interface per ifp structure not a ifp->info structure with a ei per connected. Some minor code cleanup as well with macros and their weird usage. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-10-02eigrpd: Start fixing eigrp_interfaceDonald Sharp
The EIGRP interface handling code created 2 levels of interface information, the ei( created per *connected* address?????) and the ifp->info pointer. Start the combination of pushing these together and cleaning up the weirdness that is these two data structures. This commit probably breaks eigrp's handling of interfaces. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-26eigrpd: eigrp_neighbor_entry to eigrp_nexthop_entryDonald Sharp
The struct 'eigrp_neighbor_entry' really represents a nexthop for a prefix. Rename the structure to better represent what we are representing. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-24eigrpd: Convert pe->destination_ipv4 to pe->destinationDonald Sharp
Convert the destination_ipv4 to a struct prefix and just call it destination. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-24eigrpd: Remove union from FSM msgDonald Sharp
Remove the union of passing the TLV and just pass the metric in. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-24eigrpd: make fsm msg data_type an enumDonald Sharp
We need to eventually be able to handle multiple data types to figure out if the distance is better worse. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17eigrpd: Store nbr in packet dataDonald Sharp
Store the neighbor information( if available ) in the packet data that we are sending. This will allow in a future commit the ability to fixup the outgoing ack we are sending. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-10eigrpd: fix spelling of "bandwidth"Andrew Lunn
There are a number of spelling errors in eigrp. But this one is particular annoying because it is a variable name, not in a comment. Signed-off-by: Andrew Lunn <andrew@lunn.ch>
2017-07-22Revert "*: reindent pt. 2"David Lamparter
This reverts commit c14777c6bfd0a446c85243d3a9835054a259c276. clang 5 is not widely available enough for people to indent with. This is particularly problematic when rebasing/adjusting branches. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-17*: reindent pt. 2whitespace / reindent
w/ clang 5 * reflow comments * struct members go 1 per line * binpack algo was adjusted
2017-07-17*: reindentreindent-master-afterwhitespace / reindent
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'` Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-05-15*: make consistent & update GPLv2 file headersDavid Lamparter
The FSF's address changed, and we had a mixture of comment styles for the GPL file header. (The style with * at the beginning won out with 580 to 141 in existing files.) Note: I've intentionally left intact other "variations" of the copyright header, e.g. whether it says "Zebra", "Quagga", "FRR", or nothing. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-04-26eigrpd: Switch u_int64_t -> uint64_tDonald Sharp
Apparently u_int64_t is not available (or we don't pull the right headers in for solaris based systems ). Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-03-08eigrp: Initial CommitDonald Sharp
Please Note, I will be redoing this commit message with more information. Additionally I will rework the lib/* changes into their own commits. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>