summaryrefslogtreecommitdiff
path: root/zebra/interface.c
AgeCommit message (Collapse)Author
2017-03-15*: Refactor if_lookup_by_name to be VRF awareDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-13frr: Remove HAVE_IPV6 from code baseDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-05Rationalize Link Parameters flagsOlivier Dugeon
* lib/if.h: Remove LP_TE as Link Parameters is set if different from 0 See IS_LINK_PARAMS_SET macro and use LP_TE_METRIC to determine if TE metric is set or not * lib/if.c: replace LP_TE by LP_TE_METRIC in default LP status * zebra/interface.c: replace LP_TE by LP_TE_METRIC and check if TE metric is equal to standard metric or not * ospfd/ospf_te.c: replace LP_TE by LP_TE_METRIC * isisd/isis_te.c: replace LP_TE by LP_TE_METRIC Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2016-12-05*: fix up DEFUNs without install_element callsDavid Lamparter
These now generate warnings which will break the build with -Werror. Note this may have enabled commands that should be disabled, or the other way around... Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-05Merge branch 'queue/osr/vtysh-generic'David Lamparter
WARNING: Merge contains nontrivial fixups in vrf_cmd handling. Conflicts: lib/if.c zebra/interface.c
2016-12-05Merge branch 'stable/2.0'David Lamparter
Conflicts: bgpd/bgp_route.c lib/if.c ripd/rip_interface.c zebra/interface.c zebra/zebra_vty.c
2016-12-05Merge branch '-renato' into stable/2.0David Lamparter
This contains bgp memory leak fixes as well as cleanups to VRF/namespace handling and has been run through extended testing in Cumulus' testbed: Tested-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-12-05lib, zebra: Minimize display of link-params sub dataDonald Sharp
When link-params is configured it auto starts displaying 6000-02# conf t dell-s6000-02(config)# int swp1 dell-s6000-02(config-if)# link-params dell-s6000-02(config-link-params)# admin-grp 0x12345678 dell-s6000-02(config-link-params)# end dell-s6000-02# show run interface swp1 link-params enable metric 0 <----Remove the bw lines max-bw 1.25e+06 max-rsv-bw 1.25e+06 unrsv-bw 0 1.25e+06 unrsv-bw 1 1.25e+06 unrsv-bw 2 1.25e+06 unrsv-bw 3 1.25e+06 unrsv-bw 4 1.25e+06 unrsv-bw 5 1.25e+06 unrsv-bw 6 1.25e+06 unrsv-bw 7 1.25e+06 admin-grp 305419896 exit-link-params ! I'd like to reduce this to: interface enp0s3 ip igmp ip pim sm link-params enable admin-grp 0x12345678 <----- Fix this to be what we entered exit-link-params ! Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-01*: make DEFUN installations file-localDavid Lamparter
This moves all install_element calls into the file where the DEFUNs are located. This fixes several small related bugs: - ospf6d wasn't installing a "no interface FOO" command - zebra had a useless copy of "interface FOO" - pimd's copy of "interface FOO" was not setting qobj_index, which means "description LINE" commands would fail with an error The next commit will do the actual act of making "foo_cmd" static. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-01Merge branch 'stable/2.0'David Lamparter
2016-12-01zebra: check ZEBRA_IFC_REAL on if_upChristian Franke
Only connected routes which have ZEBRA_IFC_REAL set should be redistributed. Signed-off-by: Christian Franke <nobody@nowhere.ws> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-11-28zebra: order VRFs by name on user outputRenato Westphal
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-11-28*: rename two vrf functionsRenato Westphal
Since VRFs can be searched by vrf_id or name, make this explicit in the helper functions. s/vrf_lookup/vrf_lookup_by_id/ s/zebra_vrf_lookup/zebra_vrf_lookup_by_id/ Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-11-28lib: convert vrf code to use red-black trees as wellRenato Westphal
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-11-28zebra/lib: move some code aroundRenato Westphal
* move netlink code from zebra_nc.c to kernel_netlink.c; * move vrf CLI commands from if.c/interface.c to vrf.c/zebra_vrf.c; * move declaration of the 'ns' structure to a header file. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-11-28zebra/lib: plug several memleaksRenato Westphal
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-11-22Merge branch 'cmaster-next' into vtysh-grammarQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com> Conflicts: zebra/interface.c
2016-11-18vtysh, zebra: Fix link-params to use exit-link-paramsDonald Sharp
Fix the link-params submode to use the 'exit-link-params' to indicate we are exiting a submode. Fixup all the relevant bits. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-11-12zebra: fix link-params CLI handlingDavid Lamparter
vtysh was breaking in a rather ugly way, and some "no" forms were missing too. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-10-17Merge branch 'cmaster-next' into vtysh-grammarQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com> Conflicts: bgpd/bgp_route.c bgpd/bgp_routemap.c bgpd/bgp_vty.c isisd/isis_redist.c isisd/isis_routemap.c isisd/isis_vty.c isisd/isisd.c lib/command.c lib/distribute.c lib/if.c lib/keychain.c lib/routemap.c lib/routemap.h ospf6d/ospf6_asbr.c ospf6d/ospf6_interface.c ospf6d/ospf6_neighbor.c ospf6d/ospf6_top.c ospf6d/ospf6_zebra.c ospf6d/ospf6d.c ospfd/ospf_routemap.c ospfd/ospf_vty.c ripd/rip_routemap.c ripngd/ripng_routemap.c vtysh/extract.pl.in vtysh/vtysh.c zebra/interface.c zebra/irdp_interface.c zebra/rt_netlink.c zebra/rtadv.c zebra/test_main.c zebra/zebra_routemap.c zebra/zebra_vty.c
2016-10-07*: Consolidate all double VIEW_NODE and ENABLE_NODE'sDonald Sharp
If a command is put into the VIEW_NODE, it is going into the ENABLE_NODE as well. This is especially true for show commands. As such if a command is in both consolidate it down to VIEW_NODE. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-10-07zebra: use qobj and enable concurrent config editsDavid Lamparter
This puts all the proper VTY_DECLVAR_CONTEXT calls in place, removing all vty->index uses in the process. With that, vty_config_lockless can be enabled in zebra. [v2: fix ordering screw-up in "interface XXX" command] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-09-29bgpd and zebra: scrubbed argc CHECK MEsDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-29all: added CHECK ME for DEFUNs that look at argcDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-28zebra: finish all zebra CHECK ME'sQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2016-09-25Expand #defines in command stringsDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-25zebra: CHECK ME fixesDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23zebra: add 'int idx_foo' argv index variablesDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23convert <1-255> to (1-255), ()s to <>s, etcDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23ALIAS removal for bgp, ospf, pim, isis, rip, ripng, lib and zebraDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-22zebra: argv update for all but zebra_vty.cDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-22Revert "lib, zebra: Fixup if.c to work in the new regime"Daniel Walton
This reverts commit 2511cb40e6b0e88620f26b3506b2a454a773c93d.
2016-09-22Revert "zebra: Fixup to use the new parser"Daniel Walton
This reverts commit 5c94274ff77b7ba53a27ed68eb4b0bcdafba47b2.
2016-09-20zebra: Fixup to use the new parserDonald Sharp
2016-09-20lib, zebra: Fixup if.c to work in the new regimeDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-19*: split & distribute memtypes and stop (re|ab)using lib/ MTYPEsDavid Lamparter
This is a rather large mechanical commit that splits up the memory types defined in lib/memtypes.c and distributes them into *_memory.[ch] files in the individual daemons. The zebra change is slightly annoying because there is no nice place to put the #include "zebra_memory.h" statement. bgpd, ospf6d, isisd and some tests were reusing MTYPEs defined in the library for its own use. This is bad practice and would break when the memtype are made static. Acked-by: Vincent JARDIN <vincent.jardin@6wind.com> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com> [CF: rebased for cmaster-next] Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2016-09-16zebra: Refactor interface statistic callingDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-03Update Traffic Engineering Support for OSPFDOlivier Dugeon
NOTE: I am squashing several commits together because they do not independently compile and we need this ability to do any type of sane testing on the patches. Since this series builds together I am doing this. -DBS This new structure is the basis to get new link parameters for Traffic Engineering from Zebra/interface layer to OSPFD and ISISD for the support of Traffic Engineering * lib/if.[c,h]: link parameters struture and get/set functions * lib/command.[c,h]: creation of a new link-node * lib/zclient.[c,h]: modification to the ZBUS message to convey the link parameters structure * lib/zebra.h: New ZBUS message Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> Add support for IEEE 754 format * lib/stream.[c,h]: Add stream_get{f,d} and stream_put{f,d}) demux and muxers to safely convert between big-endian IEEE-754 single and double binary format, as used in IETF RFCs, and C99. Implementation depends on host using __STDC_IEC_559__, which should be everything we care about. Should correctly error out otherwise. * lib/network.[c,h]: Add ntohf and htonf converter * lib/memtypes.c: Add new memeory type for Traffic Engineering support Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> Add link parameters support to Zebra * zebra/interface.c: - Add new link-params CLI commands - Add new functions to set/get link parameters for interface * zebra/redistribute.[c,h]: Add new function to propagate link parameters to routing daemon (essentially OSPFD and ISISD) for Traffic Engineering. * zebra/redistribute_null.c: Add new function zebra_interface_parameters_update() * zebra/zserv.[c,h]: Add new functions to send link parameters Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> Add support of new link-params CLI to vtysh In vtysh_config.c/vtysh_config_parse_line(), it is not possible to continue to use the ordered version for adding line i.e. config_add_line_uniq() to print Interface CLI commands as it completely break the new LINK_PARAMS_NODE. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> Update Traffic Engineering support for OSPFD These patches update original code to RFC3630 (OSPF-TE) and add support of RFC5392 (Inter-AS v2) & RFC7471 (TE metric extensions) and partial support of RFC6827 (ASON - GMPLS). * ospfd/ospf_dump.[c,h]: Add new dump functions for Traffic Engineering * ospfd/ospf_opaque.[c,h]: Add new TLV code points for RFC5392 * ospfd/ospf_packet.c: Update checking of OSPF_OPTION * ospfd/ospf_vty.[c,h]: Update ospf_str2area_id * ospfd/ospf_zebra.c: Add new function ospf_interface_link_params() to get Link Parameters information from the interface to populate Traffic Engineering metrics * ospfd/ospfd.[c,h]: Update OSPF_OPTION flags (T -> MT and new DN) * ospfd/ospf_te.[c,h]: Major modifications to update the code to new link parameters structure and new RFCs Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> tmp
2016-09-03lib, zebra: unify link layer type and hardware address handlingTimo Teräs
This removes the BSD specific usage of struct sockaddr_dl hardware address. This unifies to use explict hw_addr member for the address, and zebra specific enumeration for the link layer type. Additionally the zapi is updated to never send platform specific structures over the wire, but the ll_type along with hw_addr_len and hw_addr are now sent for all platforms. Based on initial work by Paul Jakma. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Author: Timo Teräs <timo.teras@iki.fi> # # rebase in progress; onto 9c2f85d # You are currently editing a commit while rebasing branch 'renato' on '9c2f85d'. # # Changes to be committed: # modified: isisd/isis_circuit.c # modified: lib/if.c # modified: lib/if.h # modified: lib/zclient.c # modified: zebra/interface.c # modified: zebra/interface.h # modified: zebra/kernel_socket.c # modified: zebra/rt_netlink.c # modified: zebra/rtadv.c # modified: zebra/zserv.c # # Untracked files: # "\033\033OA\033OB\033" # 0001-bgpd-fix-build-on-Solaris.patch # ldpd/ # redhat/ldpd.init # redhat/ldpd.service # tags #
2016-08-07zebra: create an abstraction layer for netlink_neigh_update()Renato Westphal
We shouldn't have platform-agnostic code (e.g. zebra/interface.c) calling platform-specific functions (e.g. netlink_neigh_update). This commit introduces the kernel_neigh_update() function, which then has to be implemented by all supported platforms. Currently only Linux implements this function, which is only used by the RTADV code. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-07-18Deprecate link-detect and don't display it in show running-configDinesh G Dutt
Ticket: CM-11808 Reviewed By: CCR-4972 Testing Done: Usual stuff link-detect is on by default, and has been so since the first release of Cumulus Linux. So, in the light of not displaying defaults, don't display link-detect if enabled, only if disabled.
2016-06-28zebra/ospf/ospf6: Fix several memory leaks on if up/downDon Slice
Resolved several memory leaks caused by ifdown/ifup the vrf device or a swp port. For bgp/zebra/ospf/ospf6, bouncing the vrf device would cause a linked list, Interface, and route-table to get leaked. For ospf6, bouncing the swp device also caused leaks of Connected and Prefix entries. Ticket: CM-10841 Signed-off-by: Don Slice Reviewed-By: Donald Sharp Testing Done: Manual testing, bgp and ospf mins passed, smokes had fewer failures than base
2016-06-20zebra: Add ipv6 router advertisement message counterQuentin Young
Ticket: CM-4497 Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-06-13ospfd/ospf6d/zebra: Change interface bandwidth range and auto-cost range to 100GDon Slice
Prior to this change, interface bandwidth could not be defined above 10G. With the use of higher speed interfaces, the ability to effectively define the path links was highly impacted. Additionally, the default auto-cost reference-bandwidth for ospf and ospfv3 was set to 100M, which relects a much earlier time. Changed both the range of interface bandwidth definitions and reference bandwidths to be up to 100G. Set the default interface bandwidth (if not defined) to 10G to make the ratio continue to cause a cost of 10 as before. Manual testing as well as ospf-min and ospf-smoke passed successfully. Ticket: CM-10756 Signed-of-by: Don Slice Reviewed-by: Donald Sharp
2016-06-09zebra: use prefix2str for logging where possibleTimo Teräs
This makes code more robust, consice and readable. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit be6335d682c5ee1b6930345193eda875705fbab2)
2016-05-26Fixed if_add_update possible null dereferenceMorgan Stewart
Coverity Scan #1221454 In zebra/interface.c if_data could be null dereferenced without early check. Signed-off-by: Morgan Stewart <morgan@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com> (cherry picked from commit c8394ace7081ef0e71f3d162067c83c2629fc088)
2016-05-26zebra: fix NetBSD interface stats printfDavid Lamparter
"format '%qu' expects type 'long long unsigned int', but argument 3 has type '__uint64_t'" Move to %llu, which is more standard. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 193e78f2460a537695e34368a29fc5cd02e4e1f5)
2016-05-26zebra: print "no link-detect"David Lamparter
The default for this is slated to change, so let's print the current default value for preexisting configurations. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 4c421215a0330b96d85879810558d40027a96ca6)
2016-05-19zebra: Clean up some small static analysis warningsDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Don Slice <dslice@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-05-10zebra: Fix interface based static routesDonald Sharp
This commit fixes interface based static routes. static routes are now stored and if an interface comes up it finds the route and installs it. Ticket: CM-10869 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Don Slice <dslice@cumulusnetworks.com>