Commit Graph

8833 Commits

Author SHA1 Message Date
Mitesh Kanjariya
09fdc88c8c Merge branch 'master' into dev-master 2017-08-28 18:19:03 -07:00
Mitesh Kanjariya
6b3ee3a0b0 lib: new APIs for get/set system hostname/domainname
1. Change hostname_get to cmd_hostname_get
2. Change domainname_get to cmd_domainname_get
3. New API to set domainname
3. Provide a CLI command to set domainname

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-28 17:16:52 -07:00
David Lamparter
126ee21d2e Merge pull request #1041 (-funwind-tables) 2017-08-29 01:05:05 +02:00
Donald Sharp
c594d99ffb configure: Add -funwind-tables
Certain platforms( ARM comes to mind ) in order
to get a proper stack trace on crash you need
to compile with this value.  Since it only
slightly increases the size of the binary for
other platforms, I would consider it worthwhile
to include this directive.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-28 19:01:15 -04:00
David Lamparter
2de0ee8316 Merge pull request #1065 from qlyoung/no-ospf6-router-id
no ospf6 router-id
2017-08-29 00:37:26 +02:00
Christian Franke
ce837d81cc isisd: guard SPF warning by debug flag
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-08-29 00:23:53 +02:00
Christian Franke
c55018ab9a isisd: keep original TLVs when purging in response to confusion
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-08-29 00:15:26 +02:00
David Lamparter
8bd33a03b5 vtysh: add -N/--pathspace option
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 23:50:42 +02:00
David Lamparter
d1b4fc1f89 lib: add -N/--pathspace option
This allows running the daemons inside of Linux network namespaces
without messing with an additional mount/fs namespace (or a ton of
options).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 23:50:42 +02:00
David Lamparter
9b8a82496a vtysh: simplify path handling
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 23:50:40 +02:00
David Lamparter
32f3268f51 vtysh: cleanup SUID handling
Eliminate several more SUID problems (VTYSH_LOG, history file) and make
the whole SUID approach more robust.  Still possibly unsafe to use, but
much better.

[v2: wrap seteuid/setegid calls]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 23:49:58 +02:00
Donald Sharp
b4f816c3f0 Merge pull request #1066 from nkukard/fix-ordering-of-large-community-config
vtysh: Fix for the ordering of large-community lists in config output
2017-08-28 16:15:27 -04:00
Nigel Kukard
344d9016be vtysh: Fix for the ordering of large-community lists in config output
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-08-28 19:27:23 +00:00
ßingen
77f79f87f5 Merge pull request #1019 from opensourcerouting/zeromq2
lib: ZeroMQ read handler, v2
2017-08-28 19:55:30 +02:00
Quentin Young
5d1a2ee87b
ospf6d, ospfd: add no ospf6 router-id ...
* Deprecate `router-id A.B.C.D` for ospf6d
* Add `ospf6 router-id A.B.C.D`
* Add `no ospf6 router-id [A.B.C.D]`
* Add deprecation notices for previously deprecated ospf commands

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-28 13:50:21 -04:00
David Lamparter
f3cd305f1b lib: document frrzmq in its header file
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 18:00:13 +02:00
David Lamparter
35b416fde2 tests: fix & run ZeroMQ test
add reference output & run the test with proper libs and such.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 18:00:13 +02:00
David Lamparter
a0b974def7 tests: add ZeroMQ test
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 18:00:13 +02:00
David Lamparter
b6116506ec lib: ZeroMQ read handler, v2
This uses zmq_getsockopt(ZMQ_FD) to create a libfrr read event, which
then wraps zmq_poll and calls an user-specified ZeroMQ read handler.
It's wrapped in a separate library in order to make ZeroMQ support an
installation-time option instead of build-time.

Extended to support per-message and per-fragment callbacks as discussed
with Bingen in PR #566.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 18:00:13 +02:00
David Lamparter
94758e6681 lib, zebra: carry blackhole type over ZAPI
Allow daemons to add blackholes of specific types (reject/drop.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 06:03:36 +02:00
David Lamparter
7a38782acd zebra: dont have vxlan as default iface type
... make it so zero (unset) is "other"

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 05:52:19 +02:00
David Lamparter
88ed83794a zebra: kernel_socket: read extra attributes
This is just to silence the "didn't read all data" warning.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 05:52:12 +02:00
David Lamparter
608105a73e zebra: drop IPv6 "broadcast" and "peer" addr code
There is no such thing as an IPv6 "broadcast" or "peer" address.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 05:52:06 +02:00
David Lamparter
e655a03c18 zebra: netlink: get blackhole routes from kernel
support processing of RTN_BLACKHOLE et al. from kernel and dump them
into appropriate blackhole rib entries.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 05:07:54 +02:00
David Lamparter
a830942228 zebra: cleanup blackhole support
blackhole support was horribly broken. cleanup by removing blackhole
stuff from ZEBRA_FLAG_*

introduces support for "prohibit" routes (Linux/netlink only)
also clean up blackhole options on "ip route" vty commands.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 05:07:51 +02:00
David Lamparter
fd36be7e15 zebra: rib: use nexthop ptr in rib_add/delete
This simplifies the API for the following blackhole rework.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 04:17:22 +02:00
David Lamparter
09a484dd1d *: remove ZEBRA_FLAG_{BLACKHOLE,REJECT} from API
FLAG_BLACKHOLE is used for different things in different places. remove
it from the zclient API, instead indicate blackholes as proper nexthops
inside the message.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-28 01:21:43 +02:00
David Lamparter
5a41e961f8 zebra: configure PtP address on ifaliasreq systems
support configuring a point-to-point address on systems using ioctl
/ struct ifaliasreq. error out when interface/address type mismatch.

tested on FreeBSD 8.0-RELEASE.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-27 23:40:34 +02:00
David Lamparter
a07df329e9 zebra: add '[no] ip address A.B.C.D peer A.B.C.D/M'
introduce a new command to configure a Point-to-Point address on an
interface.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-27 23:40:34 +02:00
David Lamparter
e8d19a0507 zebra: netlink backend support setting a P-t-P address
add a few bits to properly set a pointopoint address via netlink. the
structures have all the neccessary support, just need to send the proper
message bits to the kernel.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-27 23:40:34 +02:00
David Lamparter
a3008857cb zebra: fix interface deletion bug introduced by ptp address support
meh. forgot to even look at the interface deletion path. this doesn't
really work well when looking for the local address in the subnet list
which has the connected prefix in it... loop ensues.

fix by using the connected prefix when looking at the list of connected
prefixes. duh.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-27 23:40:23 +02:00
David Lamparter
abffde07a3 zebra: add connected_check_ptp infrastructure
add a connected_check_ptp function which does the same as
connected_check, but takes an additional peer prefix argument.

also fix related prefixlen mixup in PtP addresses (the local part of a
PtP address always is /32, but previously the peer mask got copied.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-27 23:31:02 +02:00
David Lamparter
3df31ebb03 Merge pull request #1054 from dslicenc/eigrp-connected
eigrpd: add correct interface metrics when interface comes up
2017-08-27 19:21:55 +02:00
David Lamparter
272e15e723 Merge pull request #1046 from qlyoung/fix-cli-ambiguous
fix handling of ambiguous cli
2017-08-27 19:20:14 +02:00
David Lamparter
0f1bbcb287 Merge pull request #1034 from dwalton76/bgpd-mpls-fec-allocate
Bgpd mpls fec allocate
2017-08-27 19:18:58 +02:00
Don Slice
cd6c573c69 eigrpd: add correct interface metrics when interface comes up
Problem noticed where we were not sending the correct metric values
to our peers for connected interfaces.  Found that we were not storing
these values on the structure used to send the update packets.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2017-08-26 15:55:29 -04:00
Donald Sharp
c3f779dc1a Merge pull request #1049 from opensourcerouting/openbsd-warnings
fix warnings on OpenBSD
2017-08-26 08:05:36 -04:00
David Lamparter
d9e5b00955 isisd: bpf: ETHER_HDR_LEN -> ETH_ALEN
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-26 01:52:12 +02:00
David Lamparter
adf580f72a zebra: remove RT_ROUNDUP warning
This warning is at odds with how the world works.  Also, the code is
correct on all platforms we care about.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-26 01:46:40 +02:00
David Lamparter
d440e3dbf0 lib: prefix: fix char value size
There are 16 bytes here, not 8.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-26 01:46:40 +02:00
David Lamparter
8c9cc7bbf6 bgpd: encap: fix extension sizing
Variably-sized struct tails are done as [0], not [1].  The latter
triggers compiler warnings and mis-sizes "sizeof(struct) + n"
expressions.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-26 01:46:40 +02:00
David Lamparter
a97986ffba *: fix compiler warnings
Specifically, gcc 4.2.1 on OpenBSD 6.0 warns about these;  they're bogus
(gcc 4.2, being rather old, isn't quite as "intelligent" as newer
versions; the newer ones apply more logic and less warnings.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-26 01:46:40 +02:00
Mitesh Kanjariya
0802e118dd Handle hostname/domainname properly for FreeBSD
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-25 16:36:31 -07:00
Mitesh Kanjariya
1f53ef552d Fix compilation errors for domainname
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-25 15:51:16 -07:00
Mitesh Kanjariya
4a48f1b70b lib: Fix make check failures
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-25 15:39:14 -07:00
Quentin Young
935cee3f9b
lib: remove static variable from cli matcher
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-25 15:41:32 -04:00
Quentin Young
8295b504cb
lib: fix rare bug in ambiguous command resolution
In certain situations, the CLI matcher would not handle ambiguous
commands properly. If it found an ambiguous result in a lower subgraph,
the ambiguous result would not correctly propagate up to previous frames
in the resolution DFS as ambiguous; instead it would propagate up as a
non-match, which could subsequently be overridden by a partial match.

Example CLI space:

  show ip route summary
  show ip route supernet-only
  show ipv6 route summary

Entering `show ip route su` would result in an ambiguous resolution for
the `show ip route` subgraph but would propagate up to the `show ip`
subgraph as a no-match, allowing `ip` to partial-match `ipv6` and
execute that command.

In this example entering `show ip route summary` would disambiguate the
`show ip` subgraph. So this bug would only appear when entering input
that caused ambiguities in at least two parallel subgraphs.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-25 15:41:27 -04:00
Donald Sharp
e1bd637370 Merge pull request #1045 from opensourcerouting/clippy-coverity
clippy: disable unneeded autogenerated code
2017-08-25 13:51:46 -04:00
David Lamparter
0ee0892b66 clippy: disable unneeded autogenerated code
Coverity is generating a lot of warnings about unused stuff being
around.  Disabling these bits is most easily done by just putting a few
preprocessor directives into the template.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-25 18:54:13 +02:00
Donald Sharp
1e9f448fe1 zebra: Coverity Code Cleanup
1) Various socket close issues
2) Ensure afi passed is usable
3) Fix some reads beyond buffer and reads after free
4) Ensure some failure modes are handled properly
5) Memory Leak(s) fix
6) There is no 6.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-25 11:37:07 -04:00