summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_network.c
AgeCommit message (Collapse)Author
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>
2022-05-11*: Properly use memset() when zeroingDonatas Abraitis
Wrong: memset(&a, 0, sizeof(struct ...)); Good: memset(&a, 0, sizeof(a)); Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-02-09ospf6d: Stitching the auth trailer code with rest of ospf6.Abhinay Ramesh
Problem Statement: ================== RFC 7166 support for OSPF6 in FRR code. RCA: ==== This feature is newly supported in FRR Fix: ==== Core functionality implemented in previous commit is stitched with rest of ospf6 code as part of this commit. Risk: ===== Low risk Tests Executed: =============== Have executed the combination of commands. Signed-off-by: Abhinay Ramesh <rabhinay@vmware.com>
2021-06-18ospf6d: read ospf6 socket until failurePat Ruddy
To ensure we read all the datagrams availabe from a socket when the read task is scheduled, make the read helper return and error or continue enum and loop unitl an error is received. This requires the read from the socket to be non blocking Signed-off-by: Pat Ruddy <pat@voltanet.io>
2020-11-03Merge pull request #7261 from Niral-Networks/niral_dev_vrf_ospf6Rafael Zalamena
ospf6d : Transformation changes for ospf6 vrf support.
2020-10-30ospf6d : Transformation changes for ospf6 vrf support.harios_niral
1. All the changes are related to handle ospf6 with different vrf. 2. The dependancy of global ospf6 is removed. Co-authored-by: Kaushik <kaushik@niralnetworks.com> Signed-off-by: harios_niral <hari@niralnetworks.com>
2020-10-29ospf6d: Give a bit more data when sendmsg failsDonald Sharp
When sendmsg fails add a bit more data in hopes we can figure out what is going wrong. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-29ospf6d: ifindex should not be a pointer for ospf6_sendmsgDonald Sharp
Let's cleanup the ospf6_sendmsg api and not pass in a pointer to the ifindex to use. It's an integer. Also remove the assert(*ifindex); We never use ifindex of 0 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-08ospf6d: Move header includes around to reflect realityDonald Sharp
ospf6_network.h needs ospf6_top.h to be included first. This makes newer versions of gcc much much happier. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-10-06ospf6d : Socket change for ospf6d vrf support.Kaushik
1. The socket() call is changed to vrf_socket(). 2. The ospf6 instance creation api added. 3. The global socket fd is replaced with ospf6->fd. 4. All dependency of the global socket is resolved. 5. Added the ospf6 receive timer in the global structure. 6. Performed the thread off on receive timer when we do "no router ospf6". Co-authored-by: harios <hari@niralnetworks.com> Signed-off-by: Kaushik <kaushik@niralnetworks.com>
2019-09-03*: frr_elevate_privs -> frr_with_privsDavid Lamparter
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-02-14ospf6d: closing server socket when leaving ospf6dPhilippe Guibert
this commit brings consistency as it closes the socket used to carry ospfv3 messages. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-02-14ospf6d: unitialised buffer zone used by socketPhilippe Guibert
a buffer zone is initialised, before being used by server socket. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-09-13*: LIB_[ERR|WARN] -> EC_LIBQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-14*: use frr_elevate_privs() (1/2: coccinelle)David Lamparter
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-14*: rename ferr_zlog -> flog_err_sysQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-14*: rename zlog_fer -> flog_errQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-14ospfd: zlog_ferr facilityChirag Shah
Ticket:CM-21333 Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com> Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-14ospf6d: Update OSPFv3 to use new zlog_ferrDonald Sharp
Update OSPFv3 to use the new zlog_ferr messages 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>
2017-10-23ospf6d: Make 'struct zebra_privs_t' availableDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
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>
2016-12-08*: always set SO_SNDBUF and SO_RCVBUF using a best effort approachRenato Westphal
If we fail to set any socket's buffer size, try again with a smaller value and keep going until it succeeds. This is better than just giving up or, even worse, abort the creation of a socket (ospf6d and ripd). Fix broken ospf6d on FreeBSD. Signed-off-by: Renato Westphal <renato@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-11-15build: massively remove needless checksDavid Lamparter
Since we have autoconf results from a wide swath of target platforms, we can go remove checks that have the same result on all systems. This also removes several "fallback" implementations of functions that, at some point in the history, weren't available on all target platforms. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-08-18*: use an ifindex_t type, defined in lib/if.h, for ifindex valuesPaul Jakma
(cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
2016-08-07ospf6d: fix sendmsg on OpenBSDRenato Westphal
When sending ancillary data on OpenBSD, we need to tell the compiler that the ancillary data buffer should be aligned on the stack to the minimum alignment of the first ancillary data object that will be sent. Additionally, HAVE_SIN6_SCOPE_ID is not defined anywhere, check for HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-05-26Fix most compiler warnings in default GCC build.Paul Jakma
Fix lots of warnings. Some const and type-pun breaks strict-aliasing warnings left but much reduced. * bgp_advertise.h: (struct bgp_advertise_fifo) is functionally identical to (struct fifo), so just use that. Makes it clearer the beginning of (struct bgp_advertise) is compatible with with (struct fifo), which seems to be enough for gcc. Add a BGP_ADV_FIFO_HEAD macro to contain the right cast to try shut up type-punning breaks strict aliasing warnings. * bgp_packet.c: Use BGP_ADV_FIFO_HEAD. (bgp_route_refresh_receive) fix an interesting logic error in (!ok || (ret != BLAH)) where ret is only well-defined if ok. * bgp_vty.c: Peer commands should use bgp_vty_return to set their return. * jhash.{c,h}: Can take const on * args without adding issues & fix warnings. * libospf.h: LSA sequence numbers use the unsigned range of values, and constants need to be set to unsigned, or it causes warnings in ospf6d. * md5.h: signedness of caddr_t is implementation specific, change to an explicit (uint_8 *), fix sign/unsigned comparison warnings. * vty.c: (vty_log_fixed) const on level is well-intentioned, but not going to fly given iov_base. * workqueue.c: ALL_LIST_ELEMENTS_RO tests for null pointer, which is always true for address of static variable. Correct but pointless warning in this case, but use a 2nd pointer to shut it up. * ospf6_route.h: Add a comment about the use of (struct prefix) to stuff 2 different 32 bit IDs into in (struct ospf6_route), and the resulting type-pun strict-alias breakage warnings this causes. Need to use 2 different fields to fix that warning? general: * remove unused variables, other than a few cases where they serve a sufficiently useful documentary purpose (e.g. for code that needs fixing), or they're required dummies. In those cases, try mark them as unused. * Remove dead code that can't be reached. * Quite a few 'no ...' forms of vty commands take arguments, but do not check the argument matches the command being negated. E.g., should 'distance X <prefix>' succeed if previously 'distance Y <prefix>' was set? Or should it be required that the distance match the previously configured distance for the prefix? Ultimately, probably better to be strict about this. However, changing from slack to strict might expose problems in command aliases and tools. * Fix uninitialised use of variables. * Fix sign/unsigned comparison warnings by making signedness of types consistent. * Mark functions as static where their use is restricted to the same compilation unit. * Add required headers * Move constants defined in headers into code. * remove dead, unused functions that have no debug purpose. (cherry picked from commit 7aa9dcef80b2ce50ecaa77653d87c8b84e009c49) Conflicts: bgpd/bgp_advertise.h bgpd/bgp_mplsvpn.c bgpd/bgp_nexthop.c bgpd/bgp_packet.c bgpd/bgp_route.c bgpd/bgp_routemap.c bgpd/bgp_vty.c lib/command.c lib/if.c lib/jhash.c lib/workqueue.c ospf6d/ospf6_lsa.c ospf6d/ospf6_neighbor.h ospf6d/ospf6_spf.c ospf6d/ospf6_top.c ospfd/ospf_api.c zebra/router-id.c zebra/rt_netlink.c zebra/rt_netlink.h
2015-05-19ospfd: ospfd-warnings.patchDonald Sharp
Remove compile warnings for the ospfd/ospf6d directory Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by:
2015-05-19ospf6d: ospfv3-setsocket-retry.patchDonald Sharp
SYMPTOM: With quagga running on Linux, 'ifdown <if-name>' followed by 'ifup <ifname> can cause OSPFv3 to not receive Hello packets on the interface. ISSUE: Operating System's interface IPv6 readiness may not be guaranteed at the time of interface-up event. Thats because the ipv6 components in an OS may also be listening to the same interface-up event that (in this case) is relayed to OSPFv3. In this failure case, setsockopt with option IPV6_JOIN_GROUP on the interface returned EINVAL. Error logs - OSPF6: Zebra Interface state change: swp1 index 3 flags 11043 metric 1 mtu 1500 OSPF6: Interface Event swp1: [InterfaceUp] OSPF6: Network: setsockopt (20) on ifindex 3 failed: Invalid argument FIX: To take care of this possible race condition, any address-family related setting should be retried. Given it's a rare condition and window of this race should be short, the patch adds a limited retry mechanism for the IPV6 membership setting on the socket. Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com> Reviewed-by: Dinesh Dutt <ddutt@cumulusnetworks.com> Satish Ashok <sashok@cumulusnetworks.com>
2015-05-19Increase SO_SNDBUF and SO_RCVBUF to 8MB to avoid drops in large networks.Donald Sharp
2013-11-20ospf6d: set cmsg size correctlyChristian Franke
On both Linux and FreeBSD, msg_controllen should be set to CMSG_LEN, not CMSG_SPACE. This avoids sending 4 bytes of trailing garbage to the kernel. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2013-10-22ospf6d/ospfd: refactor some common definesDinesh Dutt
Rearranging common defs and structures for use betweeen OSPFv2 and OSPFv3. Created a new file called libospf.h under lib directory to hold defines that are common between OSPFv2 and OSPFv3 code bases. [DL: split of defines refactor from timer refactor] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2011-12-13ospf6d: justify multicast group managementVyacheslav Trushkin
* ospf6_network.[ch] * ospf6_sso(): new function supersedes ospf6_join_allspfrouters(), ospf6_leave_allspfrouters(), ospf6_join_alldrouters() and ospf6_leave_alldrouters() * ospf6_interface.c * ospf6_interface_state_change(): update respectively * interface_up(): ditto * interface_down(): ditto
2011-10-17IPv6 transport class suppportStephen Hemminger
IPv6 supports the same concept of differentiated service for routing protocols as IPv4, but like too many things, the standards committee decided that having two names for the same thing wasn't good enough and introduced a third more generic term transport class. The socket option to set transport class works the same as IPv4, but the arguments are different. * lib/sockopt.[ch] * setsockopt_ipv6_tclass(): new function * bgpd/bgp_network.c * bgp_connect(): set socket option * bgp_listener(): set socket option * ospf6d/ospf6_network.c * ospf6_set_transport_class(): new function * ospf6_serv_sock(): set socket option * ripngd/ripngd.c * ripng_make_socket(): set socket option
2008-08-22[trivia] finish off static'ification of ospf6d and ripngdPaul Jakma
2008-08-15 Paul Jakma <paul.jakma@sun.com> * {ospf6d,ripngd}/*: Finish job of marking functions as static, or exporting declarations for them, to quell warning noise with Quagga's GCC default high-level of warning flags. Thus allowing remaining, more useful warnings to be more easily seen.
2006-05-15[ospf6d] GNU Zebra #3562: ABR Crash fix, memory fixes, route table debugsPaul Jakma
2006-02-22 Yasuhiro Ohara <yasu@sfc.wide.ad.jp> * valgrind check and memory fix * route table identification string added * ospf6d.h: version 0.9.7q
2004-12-24*.c: Change level of debug messages to LOG_DEBUG.hasso
2004-11-202004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* global: Replace strerror with safe_strerror. And vtysh/vtysh.c needs to include "log.h" to pick up the declaration.
2004-09-29Merge svn revision 1048 from Zebra cvs. Also add missing sokopt.h includehasso
to ospf6_network.h.
2004-07-232004-07-23 Paul Jakma <paul@dishone.st>paul
* ospf6_main.c: Delete LOG_PERROR, not portable. * ospf6_network.c: (ospf6_set_pktinfo) use setsockopt_ipv6_pktinfo
2004-05-18Ospf6d merge from Zebra repository with added privs stuff and mergedhasso
zclient changes.
2003-06-042003-06-04 Paul Jakma <paul@dishone.st>paul
* Merge of zebra privileges
2003-05-25ospf6d part of 6Wind patch.hasso
2002-12-13Initial revisionpaul