summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-12-03zebra: handle RTF_CLONING removal from FreeBSD 8.0David Ward
The RTF_CLONING flag has been removed in FreeBSD 8.0 with arp-v2 (see http://svn.freebsd.org/viewvc/base/stable/8/UPDATING?view=markup), since it no longer has any meaning. This patch checks if RTF_CLONING exists before using it.
2009-12-03isisd: fix --enable-isis-topology for 64-bit LinuxDavid Ward
2009-12-03zebra: fix argument reference in strncpy() call for BSDheasley
2009-12-03isisd: fix BPF ioctl() calls, treat "true" and "false" as reservedDavid Ward
Avoid a potential conflict with the C99 defines 'true' and 'false' found in <stdbool.h> by choosing better variable names. Also fix the calls to these ioctls, as described in <net/bpf.h> in FreeBSD, NetBSD, and OpenBSD: * BIOCGBLEN, BIOCIMMEDIATE, BIOCSSEESENT (the parameter should be of type 'u_int') * BIOCPROMISC (there should be no parameters)
2009-12-03configure: fix spellingDavid Ward
2009-12-03ospfd: VTY strings cleanupStephen Hemminger
Several bits of text can be local or are unused.
2009-12-03ospfd: comment out unused functionStephen Hemminger
2009-12-03ospfd: make local functions staticStephen Hemminger
This code is only used one place and can be made local. Gcc is smart enough to inline local functions if it wants to. The function also has a big chunk of compatiablity code that is no longer used; since quagga is now in a version control system the source does not need to be used as a historical reference.
2009-12-03zebra: fix RIB debug message for IPv6David Ward
Apply changes from commit f304cb48f0d7d0ff8f36e7aca8293141a9fa9e60 to rib_queue_add. Also includes spelling fixes.
2009-12-03zebra: make declaration const in rtm_flag_dump()Tom Goff
* kernel_socket.c: (rtm_flag_dump) Use a const message pointer to be in sync with commit ce0db9cb11c0bc2e7f89a7d042e50afa495556b4.
2009-12-01ospf6d: fix LSA locking in ospf6_new_ls_id()Tom Goff
* ospf6_lsdb.c: (ospf6_new_ls_id) Unlock the current LSA when breaking out of the ospf6_lsdb_*_head() / ospf6_lsdb_*_next() loop early. No explicit unlocking is needed when all LSAs are looped through because ospf6_lsdb_*_next() manages everything in that case.
2009-11-05configure: fix HAVE_CLOCK_MONOTONIC spellingDmitry Tejblum
2009-09-28[ospfd] enable more OSPF cost command aliasesDenis Ovsienko
The following syntax forms were not historically supported by Quagga, although IOS accepted them w/o a problem: no ip ospf cost <1-65535> no ospf cost <1-65535> no ip ospf cost <1-65535> A.B.C.D no ospf cost <1-65535> A.B.C.D From now on Quagga also supports these variants.
2009-09-01zebra: Fix router advertisements for non-Ethernet link layer addressesDavid Ward
* rtadv.c: round up when calculating the link-layer address option length; add padding to the option if needed to end on an octet boundary
2009-08-28release: 0.99.15Paul Jakma
* configure.ac: Bump to 0.99.15
2009-08-28ospf6d: bug #529, fix endianness problem in earlier commit Tom Henderson
* ospf6_lsa.c: (ospf6_lsa_age_current) arithmetical compares make no sense in non-host order..
2009-08-28bgpd: fix md5 set on listen socketsStephen Hemminger
* bgp_network.c: (bgp_md5_set) Missing piece from earlier listener change did not get ported from Vyatta code into upstream. The list listener_sockets changed from (int *) to (struct bgp_listener *).
2009-08-28lib/trivial: str2prefix checks return of inet_pton in fragile wayPaul Jakma
* prefix.c: (str2prefix_ipv6) inet_pton succesful return is presumed to be 1, rather than the "not zero" the man page describes - seemed fragile.
2009-08-28zebra: Add an example config file for testzebraPaul Jakma
* testrib.conf: Example config file for testzebra
2009-08-28zebra: test_main.c should be a bit more helpful about its usagePaul Jakma
* test_main.c: If required arguments are missing, say that.
2009-08-28lib: if_lookup_by_name should be more robust to null argumentPaul Jakma
* if.c: (if_lookup_by_name) shouldn't crash just cause we got a NULL name
2009-08-28ospfd: Make sure priority is respected.Joakim Tjernlund
* ospf_ism.c (ospf_dr_eligible_routers) should test for priority > 0 instead of != 0 as ospf_nbr_new () initially sets prio to -1
2009-08-28ospfd: Tighten up the connected check for redistributionJoakim Tjernlund
* ospf_zebra.c: (ospf_distribute_check_connected) check to make filter out routes matching connected routes was matching against OSPF networks, which can be far more general than the actual connected interfaces. Fix.
2009-08-13all: check return value from daemon() callStephen Hemminger
* */*main.c: (main) Current versions of Gcc warn if the return value for daemon() is not checked. So add a simple test and exit on failure.
2009-08-13bgp: missing pieces from listener patchStephen Hemminger
* bgp_network.c: (bgp_accept) The code in current git will crash as part of the revised listener code is missing. The new listener thread code passes a pointer to a bgp_listener structure, not the bgp pointer. The old code always got a NULL for bgp pointer, so that is now hard coded.
2009-08-13bgp: compiler warning fixStephen Hemminger
* bgp_filter.h: Gcc complains the function prototype is not correct because the function argument is using old K&R style.
2009-08-13ospfd: fix performance problem with redistribute deleteStephen Hemminger
Doing redistribute delete with full BGP table was taking 30 minutes, this drops it down to less than a second. * ospf_lsa.c: (ospf_lsa_maxage) When flushing lots of entries the performance is terrible because it looks up each LSA entry through ospf_lsa_maxage_exist before deleting causing O(N^2) performance. Use a new OSPF_LSA_MAXAGE flag instead of scan - and maintain it. (ospf_lsa_maxage_exist) removed (ospf_lsa_maxage_delete) maintain OSPF_LSA_MAXAGE flag
2009-08-11ospfd: Make sure route table is recalculated.Joakim Tjernlund
In some cases ospfd does not recalc the route table. This happens when ospfd receives an old LSA which will trigger recalc but the this recalc will fail because all interfaces isn't up yet. Next LSA that is originated matches the old one so no recalc will be performed. This problem has been observed when there are only 2 ppp I/Fs in an area, both go down at the same time, then they come up again with a few seconds apart. * ospf_lsa.c: (ospf_{router,network}_lsa_install) avoid a needless scheduling of SPF. (ospf_lsa_different) fix bug in LSA comparison that would lead to the described failure to schedule SPF.
2009-08-11ospfd: Make "Packet ... received on wrong link" conditional on debugPaul Jakma
* ospf_packet.c: make this message conditional on 'debug ospf event', as it be easily triggered with, e.g., multiple subnets sharing same physical network. E.g, see bug #532.
2009-08-05bgpd: Fix mistakes in applying 'allow inbound connections to non-default view'Paul Jakma
* bgpd.c: (peer_lookup_with_open) Bodged application of previous patch meant the second loop around bgp->peer wasn't included in the loop around bm->bgp as it was supposed to be. Fix..
2009-08-03ospfd: neuter some compiler warningsPaul Jakma
* ospf_lsa.c: (link_info_set) Use %zd for size_t - C99 is old enough now. Lots of similar warnings all over the code. (ospf_lsa_translated_nssa_compare) Unused func - delete.
2009-08-03ospfd: update some commentsPaul Jakma
* ospf_{spf,lsa}.c: remove out of date comment; add comment on some non-obvious code; Make note of a possible scaling problem.
2009-08-03ospfd: Change struct ospf_path *oi to ifindex.Joakim Tjernlund
* global: In struct ospf_path, change struct ospf_interface *oi to int ifindex. It is unsafe to reference *oi as an ospf interface can be deleted under your feet. Use a weak reference instead.
2009-07-30ospfd: Discriminate better when selecting links between vertices in SPFJoakim Tjernlund
* ospf_spf.c: (ospf_get_next_link) One must check the vertex type, Router or Network, to select type link to match against. Link type 1 has neighbour router ID in link_id and link type 2 has IP address of DR. Since router id may have same value as an existing IP address one risks matching a router ID against a DR.
2009-07-30[bgpd] delete erroneous extra brace..Paul Jakma
2009-07-30bgpd: Workaround for invalid MBGP next hopMichael Lambert
* bgp_attr.c: (bgp_mp_reach_parse) There are some interoperability issues for MBGP (particularly IPv4 multicast NLRI) between different implementations. In order to get some next hops to install correctly in the BGP tables, it appears to be necessary to copy the multiprotocol next hop into the base next hop field. This is related to differences in RFC 2283 and RFC 2858.
2009-07-30[doc] Update HACKINGPaul Jakma
* HACKING: Update to reflect git stripping []'s, and to allow for more discretion to avoid redundancy in commit messages.
2009-07-28ospfd: Make ospf_if_lookup_recv_if() find the right unnumbered i/fJoakim Tjernlund
This function will return the interface for the first matching remote address for PtP i/f's. That won't work for multiple unnumbered i/f's as these may all have the same address. Pass in the struct interface pointer, ifp, to find the correct set of oi's to search in. This also reduces the size of the search list, making it faster. * ospfd/ospf_interface.c: Add struct interface * param to ospf_if_lookup_recv_if() to select the right list to search in. * ospfd/ospf_interface.h: ditto. * ospfd/ospf_packet.c: Pass new ifp argument to ospf_if_lookup_recv_if()
2009-07-28ospfd: export ospf_if_table_lookup() and use it in ospf_network_run_interface()Joakim Tjernlund
Makes it possible to run OSPF on multiple PtP interfaces with the same remote address. * ospfd/ospf_interface.c: Export ospf_if_table_lookup(). * ospfd/ospf_interface.h: ditto. * ospfd/ospfd.c: (ospf_network_run_interface) Use ospf_if_table_lookup() to determine whether OSPF is already configured for a subnet and interface.
2009-07-28bgpd/trivial: Fix indentation in previousPaul Jakma
2009-07-28bgpd: Allow inbound connections to non-default viewSteve Hill
* bgpd.c: (peer_lookup) Search through all BGP instances for matches, not just the default instance, if no specific instance is given. (peer_lookup_with_open) same.
2009-07-28bgpd: fd leak in bgpdSteve Hill
* bgp_fsm.c: I have found an fd leak in bgpd that is caused by the 'new' Clearing state. I've been seeing it from hold timer failures, but it can also be triggered by other things. When Hold_Timer_expired fires in Established state, a notify is sent and BGP_Stop event queued. The fsm then transitions into Clearing state. That is the problem; When the BGP_Stop event is serviced, the state table says to ignore it while in Clearing. Thus bgp_stop is not called and the fd leaks. Previously the peer would be in Idle state, which correctly handles the BGP_Stop event. Fix by making bgp_stop safe to call from Clearing state, without losing ClearingCompleted events, and then ensuring it is called prior to transition from Clearing->Idle.
2009-07-28[zebra] Fix crash in test_zebraPaul Jakma
* kernel_null.c: we're pretending to add an address, so set IFC_REAL. If this isn't done, calling into the 'got address from kernel' half of zebra will implicitly-withdraw the ifc, which could cause a crash in test_zebra.c.
2009-07-28Merge remote branch 'origin/master'Paul Jakma
2009-07-28bgpd: Delete AS_CONFED_SEQUENCE when prepending an AS_SEQUENCE type segmentVasilis Tsiligiannis
AS_CONFED_SEQUENCE segment should always be deleted when prepending (e.g. with a route-map) an AS_SEQUENCE segment to an AS path. Otherwise, AS_CONFED_SEQUENCE will not be deleted later when updating EBGP peers (since it is not the leftmost segment) and will leak outside the confederation.
2009-07-28bgpd: Implement BGP confederation error handling (RFC5065, Par. 5)Vasilis Tsiligiannis
This patch implements BGP confederation error handling in Quagga as described in RFC5065, paragraph 5. * bgp_aspath.c: (aspath_confed_check, aspath_left_confed_check) new functions * bgp_attr.c: (bgp_attr_aspath_check) apply previous and NOTIFY if there's a problem.
2009-07-28[global] interface flags format warningsStephen Hemminger
*/*: ifp->flags is 64 bit unsigned which can not be handled by %l on 32 bit architectures - requires %ll and the appropriate cast.
2009-07-28bgpd: start listener on first instanceStephen Hemminger
Start BGP listener only after first instance is started. This helps the security if BGP is not used but daemon is started. It also addresses some issues like MD5 not working on listener unless IPV6 configured (because listener was not in list); as well as compiler warnings. * bgp_network.c: (bgp_listener) listen socket creation consolidated here (bgp_socket) Use bgp_listener * bgpd.c: (bgp_get) call bgp_socket on creation of first struct bgp. (bgp_init) remove bgp_socket call. * memtypes.c: Add MTYPE_BGP_LISTENER
2009-07-28bgpd: peer action table static/constStephen Hemminger
bgpd.c: (various tables) only used in one place and are immutable.
2009-07-27ripd: set IP TOS for control socketStephen Hemminger
* ripd.c: (rip_create_socket) RIP packets should go out with Type Of Service (DSCP) set to Internet control (like OSPF and BGP).