[lib] fix missing sockunion_normalise_mapped* lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here,
as it used to before this was moved to a dedicated function..
[bgpd] Add 'show bgp views' command* bgp_vty.c: (show_bgp_views_cmd) new command to list all defined
views.
(with small edits by Paul Jakma)
Signed-off-by: Paul Jakma <paul@quagga.net>
[lib] Switch Fletcher checksum back to old ospfd version* lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum
back to the old ospfd logic.
The isisd-derived version:
a) is very hard to follow
b) had some kind of subtle bug that caused it be wrong when c0=0 and c1=254
(potentially fixable by doing the mods before adjusting x and y)
Additionally:
- explicitely cast expressions using non-internal variables t...
[vtysh] Add commands from zebra_routemap.c to vtysh* Makefile.am: vtysh should also pull in commands from zebra_routemap.c
Signed-off-by: Paul Jakma <paul@quagga.net>
[bgpd] Fix definition of an rsclient command* bgp_route.c: (show_ip_bgp_view_rsclient_route_cmd) Add the missing "ip"
to the command string.
Signed-off-by: Paul Jakma <paul@quagga.net>
[ospfd] Fix SEGV during startup introduced in recent commit* ospfd/ospfd.c: (opsf_if_update) Check if ospf_lookup() returns NULL.
Fixes bug introduced with recent ospf_network_run changes in
a49eb30a, where SEGV will happen if not the "router ospf" command has
been executed before the first interfaces are reported by zebra.
Signed-off-by: Paul Jakma <paul@quagga.net>
[ospfd] Move passive interface check* ospf_packet.c: Apply passive check and drop for all packages
and not just Hellos.
Signed-off-by: Paul Jakma <paul@quagga.net>
[lib] re-enable conversion of v6mapped INET6 sockunions to regular INET* lib/sockunion.c: Re-enable conversion of v6mapped INET6 sockunions to
regular INET sockunions, which was disabled in 0df7c9, as it leads to
failures in sockunion_cmp.
(sockunion_normalise_mapped) consolidate here
(sockunion_accept) remove conversion code altogether here - no sockunion
is created
(sockunion_get{sockname,peername}) normalise newly created sockunion.
[bgpd] Allow accepted peers to progress even if realpeer is in Connect* bgpd/bgp_packet.c: (bgp_open_receive) Try fix the little race in the FSM,
where a accept-peer that progress faster than realpeer gets closed down if
realpeer is still just in Connect, by allowing the realpeer to be
bgp_stop'ed and doing the regular swapping-of-FSM state.
[bgpd] Document the FSM dummy-peer race that sometimes afflicts session setup* bgp_packet.c: (bgp_open_receive) the accept-peer hack can sometimes
cause a race between two peers that try to establish sessions to each other,
causing session setup to fail when it should have succeeded. In the worst
case, the race can 'loop', causing prolonged failure to establish sessions.
[ospfd] Minor enhancements to recent self-host-routes suppression patch * ospf_spf.c: (ospf_spf_process_stubs) Track whether
parent router vertex is the root, so that the host-route
suppression logic need only be activated for such vertices.
Move the actual logic to ospf_intra_add_stub.
* ospf_route.c: (ospf_intra_add_stub) Main test of link moved
here, notionally more appropriate.
[ospfd] Restructure opsf_if_update() and ospf_network_run() Add an struct interface paramenter and adjust the affected
code accordingly.
The old code was a mess looping over all interfaces several times
when one interface was added/changed.
* ospfd/ospfd.h: Add struct interface parameter to ospf_if_update()
* ospfd/ospf_zebra.c: Add ifp arg to ospf_if_update() calls.
(ospf_interface_address_delete) delete ospf_if_update()...
Revert "[bgpd] Add 'bgp open-accept' option, to send OPEN immediately on accepted conns"Revert commit d664ae1182c29b74b409bc8594b7bd0575e91ce9. An experimental
patch which violates RFC4271 quite badly, but managed to accidently sneak
its way in.
Set destination for PtP links to OSPF_ALLSPFROUTERS.Update ospf_db_desc_send(), ospf_ls_upd_queue_send() and ospf_ls_req_send()
to always use OSPF_ALLSPFROUTERS for PtP links.
See RFC 2328, chap 8.1 for details:
"The IP destination address for the packet is selected as
follows. On physical point-to-point networks, the IP
destination is always set to the address AllSPFRouters."
Without this, it won't be possible to establish adj...
Ignore host routes to self.PtP links with /32 masks adds host routes to the remote host,
see RFC 2328, 12.4.1.1, Option 1.
Make sure that such routes are ignored
Make --enable-snmp cross compile and make libcrypto optional with --without-cryptoAutoconfig work by me, the rest was done by
"Kirill K. Smirnov" <lich@math.spbu.ru>
[vty] Add support for a 'restricted mode' with anonymous vty connections * lib/command.h: Add a RESTRICTED_NODE, intended for use with
anonymous, 'no login' vtys, to provide a subset of 'view' mode
commands.
* lib/command.c: Add RESTRICTED_NODE bits, nothing special, just
following VIEW_NODE.
* lib/vty.c: (vty_auth) enable authentication should fall back to
restricted/view node as appropriate.
(vty_create) init vty's to restricted/view node as appr...
[trivia] Make 'make dist' happy about ChangeLog expunge * ChangeLog: Add back a dummy, top-level ChangeLog
* m4/Makefile.am: remove ChangeLog from EXTRA_DIST, why it was
listed there, who knows.
[bgpd] remove useless check and return in bgp_config_write_damp2008-08-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* bgp_damp.?: (bgp_config_write_damp) remove useless check
of statically allocated config storage, and useless return
value
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra] make some data local2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra_rib.c: static qualifier on local data
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra] ignore dead routes in RIB update2008-08-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra_rib.c: When doing a RIB update, routes in process of removal
should be ignored. This fixes bugs where a route is removed but a
recursive route is not changed.
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra:linux] netlink: no need to change privs for receive2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_parse_info) Linux doesn't check privledges
on receive, so avoid the overhead of lowering and raising the
priviledges on each received message
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra:linux] netlink: quiet harmless errors2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_parse_info) There can be harmless races
such as adding an existing route, or deleting an already deleted
route. Don't bother logging these unless debugging is turned on.
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra:linux] netlink buffer size tweaking only needed on receive socket2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_recvbuf) consolidate recvbuf setting
(netlink_socket) no need to set receive buffer on netlink sockets
generally
(kernel_init) set recvbuffer on the listen socket
Signed-off-by: Paul Jakma <paul@quagga.net>
[build] Linux netlink doesn't need IF_PROC2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* configure.ac: If netlink is available, then that is how the
initial routes and interfaces should be read, rather than through
/proc, so don't set IF_PROC.
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra:linux] clean up blocking setting of netlink sockets2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: This change removes the overhead of twiddling
the socket twice on every route change. The netlink support has
two sockets, one is used for request/response and should always
block. The other is used for asynchronous notification and should
always be non-blocking.
Signed-o...
[zebra:linux] Filter out unwanted netlink messages by PID2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: Update the netlink socket BPF to cancel out
unwanted ACKs on the listen socket by matching on the PID.
Signed-off-by: Paul Jakma <paul@quagga.net>
[warnings] Fix various SOS warnings2008-08-15 Paul Jakma <paul.jakma@sun.com>
* */*: Fix various problems flagged by Sun Studio compiler.
- '<qualifier> <storage>' obsolescent in declarations
- empty statements (';' after ALIAS definitions)
- implicit declarations (e.g printstack in lib/log.c)
- "\%" in printf string instead of "%%"
- loops that return on the first iteration (legitimately, but
compiler can...
[trivia] finish off static'ification of ospf6d and ripngd2008-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.
[lib] mes_lookup string lookup table argument should be marked const2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
* lib/log.{c,h}: struct message argument should point to const
* */*.c: adjust to suit,
Signed-off-by: Paul Jakma <paul@quagga.net>
[zebra] mark some rt_netlink functions static2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
* zebra/rt_netlink.c: local functions should be static.
Signed-off-by: Paul Jakma <paul@quagga.net>
[lib] hash compare function arguments ought to be const qualified2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>
* lib/hash.h: (struct hash) Hash comparator callback really
ought to treat storage behind arguments as constant - a compare
function with side-effects would be evil.
* */*.c: Adjust comparator functions similarly, thus fixing at least
a few compiler warnings about const qualifier being dropped.
Signed-off-by: Paul Jakma <p...