summaryrefslogtreecommitdiffstats
path: root/usr.sbin/eigrpd/packet.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Like dvrmpd there is no need for a static pkt buffer. Adjust code accordingly.claudio2021-01-191-3/+3
|
* Like in ospfd use a static pkt_ptr bufferclaudio2021-01-191-1/+2
|
* Make functions and variables static whenever possible.renato2016-09-021-7/+12
| | | | | | | | | | | | | | | | | | | style(9) says: "Function prototypes for private functions (i.e., functions not used elsewhere) go at the top of the first source module. In userland, functions local to one source module should be declared 'static'". The benefits of doing so include: * clean up of the eigrpd global namespace; * improved readability; * more hints to the compiler/linker to generate more efficient code. Additional changes: * Declare all extern variables in header files; * Clean up the indentation of all function prototypes and global variables. ok claudio@ benno@
* Merge the recv_packet_v[46] functions into one.renato2016-09-021-149/+84
| | | | | | | This reduces some code duplication and makes it easier to see the difference between the IPv4 and IPv6 raw sockets API. tweak + ok claudio@, ok benno@
* Simplify handling of multicast addresses.renato2016-09-021-7/+5
| | | | | | | | | | | | During the initialization of the eigrpe process, use inet_pton() to store the EIGRP multicast addresses in two global variables: * global.mcast_addr_v4 (in_addr); * global.mcast_addr_v6 (in6_addr). This way we don't need to create temporary in_addr/in6_addr variables everytime we need to use these multicast addresses for something. "I like this" claudio@ ok benno@
* Remove superfluous includes and follow style(9).renato2016-09-021-6/+9
| | | | ok claudio@ benno@
* Move several other variables out of eigrpd_conf.renato2016-04-151-3/+3
| | | | | | Now eigrpd_conf contains only variables that can be modified via a config reload. The other variables were moved to a new struct called eigrpd_global, which is now a central point for storing global variables.
* Minor fixes and code cleanup.renato2016-04-151-5/+5
| | | | | | | | | | | * whitespace cleanup; * copy in_addr structs directly; * add more malloc return value checks; * fix some log messages; * turn ifacecnt into a static variable; * use eigrp_addrcmp() on if_deladdr() to avoid code duplication; * s/route_print_origin/log_route_origin/ * more smaller issues.
* Copy structs by assignment instead of memcpy.renato2016-02-211-3/+3
| | | | | | Copying by straight assignment is shorter, easier to read and has a higher level of abstraction. We'll only avoid it when copying from an unaligned source (e.g., network buffers).
* Introduce the bad_addr() family of functions.renato2016-02-211-11/+14
| | | | | | | These functions improve code reusability as there's no more need to check for all possible "bad" addresses in several different places. Besides that, this patch introduce additional checks in the code.
* Several minor tweaks.renato2016-02-211-2/+2
|
* Add scope id only for unicast IPv6 packets.renato2016-02-211-4/+4
|
* Several fixes in the Conditionally Received (CR) mode.renato2016-01-151-16/+17
| | | | | | * If we fail to accept a packet when in the CR mode, do not ack it; * Add missing ntohl() when storing the next multicast sequence tlv; * The CR flag in the neighbor should be cleared out after use.
* Split TLV constants into subcomponents to simplify the code.renato2016-01-151-22/+9
|
* Avoid the use of inet_pton() whenever possible.renato2016-01-151-5/+4
|
* Introduce new command to show traffic statistics.renato2015-12-131-4/+40
| | | | Can be useful as a troubleshooting tool.
* Fix detection of interface up/down events.renato2015-10-101-5/+8
|
* Ignore IPv4 TLVs in IPv6 instances and vice-versa.renato2015-10-041-13/+14
|
* Fix warnings and add safeguards to protect against corrupted data.renato2015-10-041-9/+9
|
* Welcome eigrpdrenato2015-10-021-0/+729
The eigrpd daemon will support the Enhanced Interior Gateway Routing Protocol. Built using the imsg/three process framework and heavily based on ospfd(8), ospf6d(8) and ldpd(8). The current status of eigrpd(8) is as follows: * Almost full compliance with the specification: DUAL FSM, RTP, CR mode, SIA, etc * Support for both IPv4 and IPv6 * Support for multiple instances (different ASes/AFs) within the same process * Support for rdomains (one process per rdomain) * RIB/FIB synchronization * Basic redistribution support Not implemented features (yet): * Configuration reload support (partially implemented) * Route summarization * Advanced route redistribution/filtering * Carp integration * Authentication (draft is missing information) * Stub (not released by Cisco) Not yet connected to the builds. ok deraadt@ claudio@