| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Version 0.99.20ex21b
This brings us up to date with:
commit 48f99b0c2bfed8d3880732d188e1d5964f575ee4
Date: Thu Sep 29 16:55:23 2011 +0400
release: 0.99.20
and the subsequent:
commit dc00d2bb56aa6a84dd2328133f69db3c3e6d9dc7
Date: Sun Jan 8 14:47:06 2012 +0000
Marker merge for 'RE-0.99.17.6'
This marker merge (i.e. an 'ours' strategy merge) is a placeholder to show
that all commits in Quagga-RE stable, to its release RE-0.99.17.6 tag, have
been reviewed and merged into 'master'.
and then further commits (in descending date order)
commit b51a3a31500133e3e26f12e7639f297c655bc735
commit ef2d5d100431031c32ea35b3c834b46cff16f511
commit 4c78376f96cd2ca56f1c6476b76fd659654431f5
commit e854095932260b3e6187902aa9a7baa0e96b9428
commit e6b03b77766dce8009ad7b4a2392e14addf4ab0f
commit c25eaffdb2190149e768dc4ee4efc913c6d02992
commit d034aa027ef44d0a74805c27ad2a4d8ea20395d1
commit 907fd95e502e10334e5390c73cc57588b88b8171
commit 7fd6cd819ff98f0580b745ba637990df9c20ef0f
commit 4c0cf00afc4340a429a9c4830f638b4593d7c3af
commit 4afa50b393ff1fb34dd577888a05b81dfdced5af
commit 6eb0c5ab1d43bcf9edd4fefd19031f2b96ded728
commit aca43b656623f38dfa6ea835dacbdfec51d03a67
commit 6bb1273e83c29b3aeff9584bc8f6272e773294ad
commit d660f698427277ce695a5b756f3143c8304274ea
commit 6134b875f39986564aced5e2d7329fcd852f17f4
commit b4e45f67057be22133b6bec88cdf285d5c8214db
commit 6eac79a6fed4842e00607c00c445213b51bba377
commit cb32fd690a957819865219a847e3c21a53a0f419
commit 73bfe0bd9adb8e4dfcee7239e56a425c6d58f4e9
commit f768f367bcd1f37a53c563495176a5a134caf234
commit c7ec179a95c1ed4fcd3d3be3f981c8c20dce534a
commit cddf391bf6839e9f093cef15508669c1f3f92122
commit 5a616c08ce089e25dc0e8da920727af4d11279bf
commit 6ae93c058725991df5a9ae35cefec368919b5fea
commit fc98d16ea77372f4ab4231e8904f8467e8d1ef71
A summary of the changes that relate to bppd, zebra and the lib follows.
bgpd changes
* attribute handling: (a) now checks the flag byte for all attributes
and issues suitable log messages and notifications, (b) reports some
length issues that previously let slide (local pref).
Tighten End-of-RIB detection -- now iff an MP_UNREACH is the *only*
attribute and no ordinary update or withdraw.
* added --socket/-z option -- sets zebra socket name
* sets IPv6 tclass as required
* improved next hop handling and added "show ip bgp scan" and "show ip
bgpd scan detail" commands.
see commits: fc98d16ea77372f4ab4231e8904f8467e8d1ef71
0e8032d69961ae196c11ba6ead856084c7acf7c2
b64bfc1c4a552fc0b4dd024d5f77171ec848a5df
318f0d8a7f5e8e87086bbf2a9e7c4b35638951ac
8e80bdf20f493a71bcf74262ed3aa3a2437f4df6
f04a80a5d209dbb54f6fec5d0149b7c0e489d29e
* removed SAFI_UNICAST_MULTICAST
* fiddled with SAFI_MPLS_LABELED_VPN -- unsure if this is now
complete -- stuff here TODO !
* support for multicast SAFI
see commits: 73bfe0bd9adb8e4dfcee7239e56a425c6d58f4e9
5a616c08ce089e25dc0e8da920727af4d11279bf
* added "match probability" commands
* uses "route_types.txt" more effectively -- which affects the
implementation of "redistribute" commands
see commit: e0ca5fde7be5b5ce90dae78c2477e8245aecb8e9
* "nexthop-local unchanged" included in configuration.
zebra changes
* some whitespace change clutter :-(
* ZEBRA_HELLO and mopping up routes (BZ#448)
* implement route_types.h
* support for SAFI_MULTICAST
commit f768f367bcd1f37a53c563495176a5a134caf234
IPv6 MP-BGP Routes addition and deletion
commit cddf391bf6839e9f093cef15508669c1f3f92122
IPv4 MP-BGP Routes addition and deletion
* brought up to date with RFC6275
* add --socket/-z option
* add "ipv6 nd mtu <1-65535>" commands
lib changes
* filter-list handling -- does not free the filter-list before
calling the delete_hook().
However, unlike commit 6a2e0f36b103386e57dbe3a6ee4716e809111198
*does* remove the filter-list from the name look-up, before
calling the delete_hook() -- which I believe works better.
* md5.c now includes RFC 2104 HMAC
However fixed to remove compiler warning, by replacing use of
caddr_t by unsigned char*.
Some phantom whitespace changes elsewhere
* prefix.c: commits d171bf58ef12ace43d48565e6870722dece1e6ed
051954f574b9c26458518a7029aeed118f0da620
9663386f16e6285a322747514527fdf1d19788e4
- optimise masklen2ip() and apply_mask_ipv4() -- the version
here should work on a Big-Endian machine as well.
- optimise ip_masklen() -- the version here should (a) work on
a Big-Endian machine, (b) give the same result as before if
the netmask is not, in fact, valid, and (c) uses just 256
bytes of table -- not 64K.
Version here is probably not quite as fast as the previous
patch... but certainly faster that what was there before.
* zclient.c: introduced zclient_serv_path, for general zclient and
for bgpd zlookup. Added ZEBRA_HELLO to client start. Added safi
to ipv4 and ipv6 route add/delete.
|
| |
| |
| |
| |
| |
| | |
This patch contains the following:
1. Addition of IPv6 SAFI_MULTICAST BGP routes into the RTM's RIB.
2. Deletion of IPv6 SAFI_MULTICAST BGP routes from the RTM's RIB.
|
| |
| |
| |
| |
| |
| | |
This patch contains the following:
1. Addition of IPv4 SAFI_MULTICAST BGP routes into the RTM's RIB.
2. Deletion of IPv4 SAFI_MULTICAST BGP routes from the RTM's RIB.
|
| |
| |
| |
| |
| |
| |
| |
| | |
ZEBRA_HELLO message is used by routing daemons to inform zebra
what type of routes daemon will be announcing to zebra. Also
zebra uses route_type_oaths array to track which daemon announces
which protocol. Zebra mops up routes if daemon didn't for some
reason.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All daemons modified to support custom path to zserv
socket.
lib: generalize a zclient connection
zclient_socket_connect added. zclient_socket and
zclient_socket_un were hidden under static expression.
"zclient_serv_path_set" modified.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
NB: this is a partial interim version -- NOT for production.
Reinstate vtysh. In bgpd: cope better with generating oversize messages.
The "pipework" branch is no more. There is now "euro_ix" and "euro_ix_b",
where 'b' stands for 'bleedin'. The "pipework" is currently in 'bleedin'.
Version updated to: 0.99.18ex20b
Major changes in this commit:
* modified bgpd to avoid crashing if an oversize message is created.
At present, any oversize messages are simply discarded. This may be a
mistake... since it is possible that some routes that should have been
withdrawn are not. TBA.
The stream lib facilities have been overhauled to may this easier.
* restoring vtysh.
At present the vtysh is thought to work, except that it does not
currently create integrated configuration files.
For the time being, *only* the following compile:
lib, bgpd, zebra, vtysh, tests
All other daemons will fail to compile, and must be disabled.
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Create euro_ix branch.
Update version to: 0.99.18ex17
Of particular note:
* includes support for GTSM:
neighbor ... ttl-security hops X
no neighbor ... ttl-security hops X
where X is 1-254. For usual case of immediately connected
peer, X == 1.
Cannot set ttl-security while ebgp-multihop is set, and
vice-versa.
If underlying O/S does not support GTSM, then will set ttl
as per ebgp-multihop.
In passing, have fixed various bugs in the main Quagga branch.
* initial support for draft-ietf-idr-optional-transitive
Does not yet support "neighbor-complete" flag.
* main Quagga now uses TCP_CORK and permanent non-blocking
Do not beleive TCP_CORK to be necessary for euro_ix code...
which has a different buffering strategy.
The euro_ix code already runs sockets permanently non-blocking.
* various fixes to attribute intern/unintern
Trying to remove memory leaks. Nobody seems convinced that
this has been perfected, yet.
* fixes for ospfd and ospf6d issues.
Up to date with master branch up to:
commit 538cb284864c17de66152a5236db4cd80e3e7639
Merge: 036a6e6 8ced4e8
Author: Paul Jakma <paul@quagga.net>
Date: Fri Jul 29 18:21:50 2011 +0100
|
| |
| |
| |
| |
| | |
This looks like a bug in original code from misunderstanding
of C rules of evaluation.
|
|/
|
|
|
|
|
|
| |
Release: 0.99.18ex14
Also fixes issue with unknown attributes -- does not release them prematurely.
Contains the "bgpd: New show commands for improved view and address family support", which is post 0.99.18. (But not RFC 5082 GTSM.)
|
|
|
|
|
|
|
| |
Move zserv socket creation code into zebra_zserv_socket_init() and
call it only after pidfile lock has been acquired exclusively. This
keeps subsequent zebra daemons from deleting the working socket of
an already running process (bug #403).
|
|
|
|
|
|
|
|
| |
Quagga support linux policy routing (ip route ... table $X) with zebra.conf
table $X option. It works fine on ipv4. On ipv6 the parameter is ignored
(table 0 is used).
* zebra/...: Pass appropriate table arg to rib_{add,delete}_ipv6
|
|
|
|
|
| |
The cmd_nodes used to configure vty, can mostly be static so
(basic data hiding 101).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2007-05-09 Paul Jakma <paul.jakma@sun.com>
* configure.ac: sys/conf.h depends on sys/param.h, at least on
FBSD 6.2.
(bug #363) Should check for in_pktinfo for IRDP
2006-05-27 Paul Jakma <paul.jakma@sun.com>
* configure.ac: General cleanup of header and type checks, introducing
an internal define, QUAGGA_INCLUDES, to build up a list of
stuff to include so as to avoid 'present but cant be compiled'
warnings.
Misc additional checks of things missing according to autoscan.
Add LIBM, for bgpd's use of libm, so as to avoid burdening
LIBS, and all the binaries, with libm linkage.
Remove the bad practice of using m4 changequote(), just
quote the []'s in the case statements properly.
This should fix bugs 162, 303 and 178.
* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced
HAVE_* defines. I.e. HAVE_SA_LEN -> HAVE_STRUCT_SOCKADDR_SA_LEN,
* bgpd/Makefile.am: Add LIBM to bgpd's LDADD, for pow().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2007-05-01 David L Stevens <dlstevens@us.ibm.com>
* (general) These changes collectively add route-map and
prefix-list support to zebra and fix a bug in "show
route-map" (with no argument).
* doc/main.texi: added route-map, prefix-list, ip protocol
and set src documentation
* lib/command.h: added PROTOCOL_NODE type
* lib/log.c: (proto_name2num) new function, protocol name to
number translation.
* lib/routemap.c: (vty_show_route_map) fixed "show route-map"
without route-map name
* lib/routemap.h: added RMAP_ZEBRA type
* lib/zebra.h: added proto_name2num() prototype
* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and
plist
* vtysh/Makefile.am: added zebra_routemap.c
* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP
* zebra/connected.c: (connected_up_ipv4) added src preference argument
to rib_add_ipv4()
* zebra/kernel_socket.c: (rtm_read) ditto
* zebra/main.c: added prefix list initialization
* zebra/Makefile.am: added zebra_routemap.c source file
* zebra/rib.h: added generic address union "g_addr" and use in
existing places that had an explicit union.
Added "src" to struct nexthop.
Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.
* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on
netlink messages.
(netlink_route_change) ditto
(netlink_route_multipath) ditto.
* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to
rib_add_ipv4() call.
* zebra/rtread_proc.c: (proc_route_read) ditto
* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.
(nexthop_ipv4_ifindex_add) ditto
(rib_add_ipv4) ditto
(nexthop_active_check) Add route-map processing.
* zebra/zebra_routemap.c: new file for zebra route-map commands.
* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol
(vty_show_ip_route_detail) added "src" printing
(vty_show_ip_route) ditto
(show_ip_protocol_cmd) new command, list routemaps.
(config_write_protocol) write out routemap protocl config.
(zebra_vty_init) Install the new routemap protocol commands.
* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg
(zebra_init) init zebra route-maps.
* zebra/zserv.h: add zebra_route_map_init
|
|
|
|
|
|
|
|
|
|
| |
2006-07-27 Rumen Svobodnikov <rumen@telecoms.bg>
* connected.c: (connected_up_ipv4) interface connected routes always
go to table main (or otherwise they cannot be used by linux as
nexthops)
* zserv.c: (zread_ipv4_add) send route to the correct routing table
* zebra_rib.c (static_install_ipv4) set routing table
|
|
|
|
|
|
|
| |
2006-05-15 Paul Jakma <paul.jakma@sun.com>
* zserv.c: (general) Remove the private zebra_command_str
in favour of newly added libzebra zserv_command_string.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2006-01-19 Paul Jakma <paul.jakma@sun.com>
* (general) various miscellaneous compiler warning fixes.
Remove redundant break statements from switch clauses
which return.
return from main, not exit, cause it annoys SOS.
Remove stray semi-colons which cause empty-statement
warnings.
* zebra/main.c: (sighup) remove private declaration of external
function.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2006-01-16 Paul Jakma <paul.jakma@sun.com>
* lib/zclient.h: Update the Zserv protocol header with a version
field. Define the old command field to be a 'marker', to
allow old Zserv and updated Zserv to be differentiated.
Future updates will bump the version field obviously. New
command field is made wider. Try to stop using the
'zebra_size_t' typedef in the callbacks.
* lib/zclient.c: Update to read/write new format header.
* zebra/zserv.c: Ditto
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2006-01-11 Paul Jakma <paul.jakma@sun.com>
* if.h: (struct interface) expand flags to 8 bytes.
* zclient.c: (zebra_interface_{add,state}_read) stream read of
interface flags now need to use stream_getq.
(zebra_interface_if_set_value) ditto
2006-01-11 Paul Jakma <paul.jakma@sun.com>
* zserv.c: (zsend_interface_{add,delete,update}) if flags are
8 bytes now, update to write out with stream_putq.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lib/filer.c: show protocol name in filter_show()
* lib/plist.c: show protocol name in vty_show_prefix_entry()
* routemap.c: show protocol name in vty_show_route_map_entry()
* lib/vty.c: in vty_command(), show protocol name if command unknown
* zebra/zserv.c: Always provide distance fo route add
* ripd/rip_snmp.c: rip2IfConfReceive() sends values in conformance
with RFC. Also PeerDomain is now set to a STRING type.
* ripd/ripd.h: rip_redistribute_add() API includes metric and distance
* ripd/ripd.c: rip_redistribute_add() API i.e. stores metric and distance
Now allows a RIP-route to overcome a redistributed route coming
from a protocol with worse (higher) administrative distance
Metrics from redistribution are shown in show ip rip
* ripd/rip_zebra.c: adapt to the rip_redistribute_add() API, i.e.
provide distance and metric
* ripd/rip_interface.c: adapt to the rip_redistribute_add() API
* ripd/rip_routemap.c: no RMAP_COMPILE_ERROR on (metric > 16) usage
rather a CMD_WARNING, because set metric ius shared with other
protocols using larger values (such as OSPF)
The match metric action takes first external metric if present
(from redistribution) then RIP metric.
|
|
|
|
|
|
|
|
|
|
| |
rib_add_ipv6() function so that IPv6 routes in RIB can have correct
metric. No IPv6 routing daemon uses distance yet though.
* zserv.c, connected.c, kernel_socket.c, rt_netlink.c,
rtread_proc.c,zserv.c: Pass metric and distance info to the
rib_add_ipv6().
Forwardport from stable branch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* interface.c: (if_delete_update) should always be available, not
just on RTM_IFANNOUNCE/NETLINK systems.
* kernel_socket.c: (ifan_read) only call if_delete_update when
interface departs, dont if_delete, because we wish to retain
interface configuration state even when interfaces are removed.
(ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning
to down state is only chance we have to clean up interface in case
it is deleted (eg Solaris down -> unplumb -> plumb up).
* redistribute.c: (zebra_interface_delete_update) should always be
available, we /will/ call it now on all systems, via
if_delete_update.
* zserv.c: (zsend_interface_delete) ditto
(zsend_interface_address) Update the call-flow diagramme, to
reflect that if_delete_update /is/ now called on all systems,
potentially.
* zserv.h: (zsend_interface_delete) unconditionally exported, as
above.
|
|
|
|
|
|
|
| |
* (global) Extern and static'ification, with related fixups
of declarations, ensuring files include their own headers, etc.
if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in
list loop
|
|
|
|
|
|
|
|
| |
* zserv.c: (zsend_route_multipath) Fix bug if route is sent
with no NEXTHOP_FLAG_FIB nexthops. As ZAPI_MESSAGE_IFINDEX
and ZAPI_MESSAGE_NEXTHOP are always set, clients would try
read non-existent nexthop information and hit stream assert.
Zserv is still broken for multi-nexthop messages, but it always was.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rib.h: (struct rib) Add lock field for refcounting.
* zserv.h: (struct zebra_t) Add a ribq workqueue to the zebra
'master' struct.
* zserv.c: (zread_ipv4_add) XMALLOC then memset should be XCALLOC.
* zebra_rib.c: Clean up refcounting of route_node, make struct rib
refcounted and convert rib_process to work-queue. In general,
rib's should be rib_addnode'd and delnode'd to route_nodes, and
these symmetrical functions will manage the locking of referenced
route_node and freeing of struct rib - rather than having users
manage each seperately - with much scope for bugs..
(newrib_free) removed and replaced with rib_lock
(rib_lock) new function, check state of lock and increment.
(rib_unlock) new function, check lock state and decrement. Free
struct rib if refcount hits 0, freeing struct nexthop's, as
newrib_free did.
(rib_addnode) Add RIB to route_node, locking both.
(rib_delnode) Delete RIB from route_node, unlocking each.
(rib_process) Converted to a work-queue work function.
Functional changes are minimal, just arguments, comments and
whitespace.
(rib_queue_add_qnode) Helper function to setup a ribq item.
(rib_queue_add) Helper function, same arguments as old
rib_process, to replace in callers of rib_process.
(rib_queue_qnode_del) ribq deconstructor.
(rib_queue_init) Create the ribq.
(rib_init) call rib_queue_init.
(remainder) Sanitise refcounting of route_node's. Convert to
rib_queue_add, rib_addnode and rib_delnode. Change XMALLOC/memset
to XCALLOC. Remove calls to nexthop_delete and nexthop_free.
|
|
|
|
|
|
|
|
|
|
| |
* zserv.c (zebra_client_read): Fix bug: first read attempt should
read ZEBRA_HEADER_SIZE minus the number of bytes already read.
Improve efficiency by maintaining a calculation of the number
of bytes read instead of calling stream_get_endp multiple times.
If message length is too small, issue a warning message (not debug)
before closing the connection. And also check that message length
is not too big.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* (global): Fix up list loops to match changes in lib/linklist,
and some basic auditing of usage.
* configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES
* HACKING: Add notes about deprecating interfaces and commands.
* lib/linklist.h: Add usage comments.
Rename getdata macro to listgetdata.
Rename nextnode to listnextnode and fix its odd behaviour to be
less dangerous.
Make listgetdata macro assert node is not null, NULL list entries
should be bug condition.
ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use
with for loop, Suggested by Jim Carlson of Sun.
Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the
"safety" of previous macro.
LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to
distinguish from the similarly named functions, and reflect their
effect better.
Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section
with the old defines which were modified above,
for backwards compatibility - guarded to prevent Quagga using it..
* lib/linklist.c: fix up for linklist.h changes.
* ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single
scan of the area list, rather than scanning all areas first for
INTER_ROUTER and then again for INTER_NETWORK. According to
16.2, the scan should be area specific anyway, and further
ospf6d does not seem to implement 16.3 anyway.
|
|
|
|
|
|
|
| |
* lib/vty.c: Improve logging of failures to open vty socket(s).
See bugid #163.
* zebra/zserv.c: print more helpful errors when we fail to successfully
bind and listen on zserv socket. Closes bugzilla #163.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* zserv.c: Must include network.h and buffer.h for non-blocking I/O.
Remove global message_queue and t_write (need separate buffering for
each client).
(zebra_server_dequeue,zebra_server_enqueue) Remove functions
related to old buggy buffering code.
(zserv_delayed_close) New thread callback function to delete a client.
(zserv_flush_data) New thread callback function to flush buffered
data to client.
(zebra_server_send_message) Rewritten to use buffer_write (so
buffering of writes and non-blocking I/O work properly).
(zsend_interface_add,zsend_interface_delete,zsend_interface_address,
zsend_interface_update) Return 0 instead of -1 if !client->ifinfo
(this is not really an error). Return value from
zebra_server_send_message.
(zsend_route_multipath,zsend_ipv4_nexthop_lookup,
zsend_ipv4_import_lookup) Return value from zebra_server_send_message.
(zsend_ipv6_nexthop_lookup) Fix scope to static, and return value
from zebra_server_send_message.
(zsend_router_id_update) Must use zebra_server_send_message instead
of deprecated writen function. Return 0 instead of -1 if this client
is not subscribed to router-id updates (since this is not really
an error).
(zread_interface_add) Change type to static int. If
zsend_interface_add fails or zsend_interface_address fails, return -1
immediately (since the client has had an I/O error).
(zread_interface_delete,zread_ipv4_add,zread_ipv4_delete,
zread_ipv6_add,zread_ipv6_delete,zread_router_id_delete) Return 0
to indicate success.
(zread_ipv4_nexthop_lookup) Return value from
zsend_ipv4_nexthop_lookup.
(zread_ipv4_import_lookup) Return value from zsend_ipv4_import_lookup.
(zebra_read_ipv6) Remove unused function.
(zread_ipv6_nexthop_lookup) Return value from
zsend_ipv6_nexthop_lookup.
(zread_router_id_add) Return value from zsend_router_id_update.
(zebra_client_close) Call buffer_free(client->wb) and
thread_cancel(client->t_suicide).
(zebra_client_create) Allocate client->wb using buffer_new.
(zebra_client_read) Support non-blocking I/O by using stream_read_try.
Use ZEBRA_HEADER_SIZE instead of 3.
(zebra_accept) Fix bug: reset accept thread at top. Make client
socket non-blocking using the set_nonblocking function.
(config_write_forwarding) Fix scope to static.
(zebra_init) Remove initialization code for old buggy write buffering.
* zserv.h: Add 2 new fields to struct zserv: struct buffer *wb
(to enable buffered writes with non-blocking I/), and
struct thread *t_suicide to support delayed close on I/O
errors.
* router-id.h: Remove prototypes for zread_router_id_add and
zread_router_id_delete (their scope should be static to zserv.c).
|
|
|
|
|
| |
* zserv.c: (zebra_read_ipv6) replace the char * arithmetic with
STREAM_READABLE.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* (global) Update code to match stream.h changes.
stream_get_putp effectively replaced with stream_get_endp.
stream_forward renamed to stream_forward_getp.
stream_forward_endp introduced to replace some previous
setting/manual twiddling of putp by daemons.
* lib/stream.h: Remove putp. Update reference to putp with endp.
Add stream_forward_endp, which daemons were doing manually.
Rename stream_forward to stream_forward_getp.
lib/stream.c: Remove/update references to putp.
introduce stream_forward_endp.
|
|
|
|
|
|
|
| |
* zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK
for now, as we dont actually deal with with resending.... See
bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).
* kernel_socket.c: (routing_socket) ditto.
|
|
|
|
| |
* *.c: Change level of debug messages to LOG_DEBUG.
|
|
|
|
|
| |
* global: Replace strerror with safe_strerror. And vtysh/vtysh.c
needs to include "log.h" to pick up the declaration.
|
|
|
|
| |
though. Needs serious cleanup.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* zserv.c: (zsend_route_multipath) fix nasty bad memset of struct
in_addr to sizeof(struct in6_addr), causing odd and hard to debug
crash.
|
|
|
|
|
| |
* zebra/zserv.c: (zebra_init) remove implicit ip forward enabling
* NEWS: warn about forwarding change
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* zserv.c: (zsend_route_multipath) Set the nexthop_num
field correctly. Add NEXTHOP_TYPE_IPV6_IFNAME for v6.
Conditionally set ZAPI_MESSAGE_METRIC flag - only for adds.
(zsend_ipv4_add) cruft, deleted.
(zsend_ipv4_delete) ditto.
(zsend_ipv6_add) ditto.
(zsend_ipv6_delete) ditto.
2004-05-09 Sowmini Varadhan <sowmini.varadhan@sun.com>
* zserv.c: (zsend_ipv{4,6}_{add,delete}_multipath) collapsed
into single zsend_route_multipath function.
(zsend_interface_{up,down}) collapsed into zsend_interface_update.
(zsend_interface_address_{add,delete}) collapsed into
zsend_interface_address.
(zsend_interface_add) send mtu6.
(zsend_interface_delete) ditto.
(zebra_write) remove unused function.
(various) Apply static qualifier. Add comments.
* zserv.h: Definitions changed as per above.
* redistribute.c: Changes as per zserv.c.
|
|
|
|
|
| |
* Fixed "(no) ipv6 forwarding" command logic.
* Added --disable-capabilities switch to configure.
|
|
|
|
| |
from vtysh ([quagga-dev 932]).
|
| |
|
|
|
|
|
|
|
|
| |
* lib/vty.{c,h}: Remove vty layer depending on a 'master' global,
pass the thread master in explicitly to vty_init. Sort out some
header dependency problems with lib/command.h
* zebra/: Move globals to struct zebrad. Update vty_init().
* (.*)/\1_main.c: update call to vty_init().
|
|
|
|
| |
* Merge of zebra privileges
|
| |
|
| |
|
| |
|