summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | zebra: use prefix_ipv6 in rtadv_prefixDenis Ovsienko2012-01-262-11/+10
| | | | | | | | | | | | | | | rtadv_prefix.prefix was casted to "struct prefix_ipv6" and had the same size, make it exactly this type to make the code a bit cleaner.
| * | zebra: clear host bits of ND RA prefix optionDenis Ovsienko2012-01-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC4861 4.6.2. Prefix Information Prefix An IP address or a prefix of an IP address. The Prefix Length field contains the number of valid leading bits in the prefix. The bits in the prefix after the prefix length are reserved and MUST be initialized to zero by the sender and ignored by the receiver. * rtadv.c * ipv6_nd_prefix(): add missing call to apply_mask_ipv6() * no_ipv6_nd_prefix(): idem
| * | zebra: justify some IPv6 ND RA timers wrt RFCDenis Ovsienko2012-01-263-18/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a regression introduced with the previous commit: "ipv6 nd home-agent-lifetime 1800000" appeared by default in every interface section of running-config, although this command is invalid in this context. Troubleshooting and bugfixing of the issue tracked out several bugs in router advertisement procedures, some of which are fixed in this commit. * zebra/interface.c * if_zebra_new_hook(): update to treat -1 as "uninitialized" * nd_dump_vty(): idem * zebra/rtadv.c * rtadv_send_packet(): update processing of "router lifetime" field, "home agent" option and "home agent lifetime" field to conform to RFC6275 better * ipv6_nd_ra_interval_msec(): update MaxRtrAdvInterval range check, make sure it never exceeds (initialized) AdvDefaultLifetime * ipv6_nd_ra_interval(): idem * ipv6_nd_ra_lifetime(): update AdvDefaultLifetime range check, make sure it never falls below MaxRtrAdvInterval * ipv6_nd_homeagent_lifetime(): update HomeAgentLifetime range check * no_ipv6_nd_ra_lifetime(): update to treat -1 as "uninitialized" * no_ipv6_nd_homeagent_lifetime(): idem * rtadv_config_write(): idem
| * | zebra: fix output of IPv6 ND RA optionsDenis Ovsienko2012-01-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following options could be configured for an interface, but were never visible in the config text: ipv6 nd adv-interval-option ipv6 nd home-agent-preference ipv6 nd home-agent-lifetime ipv6 nd home-agent-config-flag
| * | fix zebra protocol after MP-BGP changesDenis Ovsienko2012-01-235-0/+14
| | | | | | | | | | | | | | | | | | The previous commits modified both zebra and bgpd for additional SAFI field, but not any other routing daemon, which led to zebra daemon crashing with failed assertion.
| * | zebra: fix recent MP-BGP commits for FreeBSDDenis Ovsienko2012-01-231-5/+5
| | |
| * | zebra: Removal of the following warning messagesG.Balaji2012-01-231-3/+2
| | | | | | | | | | | | warning: too many arguments for format [-Wformat-extra-args]
| * | bgpd: Addition of ipv6 network command in Multicast address family mode.G.Balaji2012-01-231-2/+5
| | | | | | | | | | | | | | | The patch adds the ipv6 network command in the BGP multicast address family mode.
| * | zebra: IPv6 MP-BGP Routes addition and deletionG.Balaji2012-01-235-15/+17
| | | | | | | | | | | | | | | | | | 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.
| * | bgpd: IPv6 MP-BGP Routes addition and deletionG.Balaji2012-01-233-0/+5
| | | | | | | | | | | | | | | | | | This patch contains the following: 1. Addition of IPv6 SAFI_MULTICAST BGP routes into the BGP Multicast RIB. 2. Deletion of IPv6 SAFI_MULTICAST BGP routes from the BGP Multicast RIB.
| * | zebra: IPv4 MP-BGP Routes addition and deletionG.Balaji2012-01-239-19/+111
| | | | | | | | | | | | | | | | | | 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.
| * | bgpd: IPv4 MP-BGP Routes addition and deletionG.Balaji2012-01-235-12/+17
| | | | | | | | | | | | | | | | | | This patch contains the following: 1. Addition of IPv4 SAFI_MULTICAST BGP routes into the BGP Multicast RIB. 2. Deletion of IPv4 SAFI_MULTICAST BGP routes from the BGP Multicast RIB.
| * | zebra: include MTU option in RA on request (BZ#665)Denis Ovsienko2012-01-202-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements a new "ipv6 nd mtu <1-65535>" interface-level command. * doc/ipv6.texi: add description * zebra/rtadv.c * rtadv_send_packet(): send option type 5, when configured * ipv6_nd_mtu(): new VTY helper * no_ipv6_nd_mtu(): ditto * rtadv_config_write(): add new option * rtadv_init(): list new helpers
| * | bgpd: reinstate zlookup checks, required for BGP without zebraPaul Jakma2012-01-091-3/+23
| | | | | | | | | | | | | | | | | | * bgp_nexthop.c: The nexthop lookup cache has to return success for queried nexthops if bgpd isn't connected to zebra, or else BGP without zebra doesn't work.
| * | Marker merge for 'RE-0.99.17.6'Paul Jakma2012-01-080-0/+0
| |\ \ | | | | | | | | | | | | | | | | | | | | 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'.
| | * | version RE-0.99.17.6RE-0.99.17.6Denis Ovsienko2012-01-051-1/+1
| | | |
| | * | doc: update BGP RFC referencesDenis Ovsienko2012-01-021-16/+14
| | | |
| | * | zebra: fix IPv6 RA wrt interface removal (BZ#480)Denis Ovsienko2012-01-021-1/+1
| | | |
| | * | zebra: fix ifindex test condition (BZ#487)Matthias Ferdinand2012-01-021-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the same ip address is used on several interfaces, and one of them gets deleted (or equivalent: set to down and then address removed), rib_delete_ipv[46] will also remove the connected route from other interfaces. rib_delete_ipv[46] is called twice when an interface is deleted: - for the "ifdown" event - for the address removal (note: this may be specific to the netlink interface of linux) The second call does not find the connected route to that same ifindex anymore, but deletes similar connected routes to any other ifindex instead. Reason: the ifindex check is on the same level as the check for ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. If everything matches except for the ifindex, the "else" part (intended for different route types) is executed, thus removing the route from the wrong interface. fix: move ifindex check inside the "then" part of the check for ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. Now connected routes to other ifindexes will not spill over to the "else" part for different route types anymore.
| | * | ospf6d: fix compiler warning messagesVyacheslav Trushkin2012-01-021-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix disagreement with C99 in zlog_debug calls Format specifier in some zlog_debug calls for size_t values was changed in order to C99 ('%u' -> '%zu'). * fix -Wsign-compare warnings Type of return value of ospf6_packet_max() was changed.
| | * | lib: fix some strtoul() use casesUlrich Weber2012-01-024-10/+26
| | | | | | | | | | | | | | | | ...otherwise 4294967295 is not a valid value on 32bit systems
| | * | ospf6d: Route locking (memory) cleanupTom Goff2012-01-022-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf6_route.c: (ospf6_route_best_next) Allows unlock route, even when there's no next route. This is consistent with how ospf6_route_next() behaves. * ospf6_intra.c: (ospf6_intra_prefix_lsa_remove) Make sure the last route considered is always unlocked. This is needed when the for loop terminates because ospf6_route_is_prefix() returns zero. Signed-off-by: Vyacheslav Trushkin <me@dogonthesun.net>
| | * | ospf6d: Have ospf6d cleanup when it terminates normallyTom Goff2012-01-029-6/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A clean exit makes it easier to use memory debuggers. * ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map cleanup. * ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa handler vector. * ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to gracefully exit. * ospf6_message.c: (ospf6_message_terminate) Add a function that frees the send and receive buffers. * ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function. Disable ospf6 before freeing everything. Signed-off-by: Vyacheslav Trushkin <me@dogonthesun.net> Conflicts: ospf6d/ospf6_lsa.h
| | * | lib: Add a function to delete all interfacesTom Goff2012-01-022-0/+19
| | | | | | | | | | | | | | | | | | | | if.c: (if_terminate) This adds a cleanup function that can be called when a daemon exits, similar to vty_terminate().
| | * | ospf6d: add verifying user's privilegesVyacheslav Trushkin2012-01-021-0/+7
| | | |
| | * | ospfd: fix bug in NSSA ABR status checkDenis Ovsienko2012-01-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf_abr.c * ospf_abr_nssa_am_elected(): feed "best" instead of "address of best" into IPV4_ADDR_CMP(), because "best" is a pointer; also, mean s_addr field of the structures to get better typed pointers
| | * | lib: address type-punned pointers in prefix_same()Denis Ovsienko2012-01-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | IPV4_ADDR_SAME() wasn't passed the right union member, this could cause a bug due to strict-aliasing. IPV6_ADDR_SAME() case got its fix before the error could be created by macro upgrade.
| | * | bgpd: justify checks for IPv4 class D/EDenis Ovsienko2012-01-023-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/prefix.h * IPV4_CLASS_DE(): make consistent with counterpart macros * bgp_packet.c * bgp_open_receive(): test using macro instead of ">=" * bgp_route.c * bgp_update_rsclient(): idem * bgp_update_main(): idem
| | * | ospfd: fix packet reception for FreeBSD 10.Dmitrij Tejblum2012-01-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf_packet.c (ospf_recv_packet): FreeBSD, starting from version 10, will not subtract the IP header size from ip_len. This is the patch from FreeBSD's ports/net/quagga/files/patch-ospfd__ospf_packet.c, by Boris Kovalenko.
| | * | zebra: ZEBRA_HELLO and mopping up routes (BZ#448)Vyacheslav Trushkin2012-01-025-2/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | lib: fix compile warnings from set-never-usedStephen Hemminger2012-01-021-6/+0
| | | | | | | | | | | | | | | | The if_dump code had empty loop, that caused set-never-used warning.
| | * | Revert "lib: address -Wunused-but-set-variable"Denis Ovsienko2012-01-024-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Stephen Hemminger's commits contain all the changes and several other warning fixes. This reverts commit 6947dbebdc91b6272f8107a6e0dd211457438606.
| | * | lib: fix SMUX compiler warningsStephen Hemminger2012-01-021-4/+3
| | | | | | | | | | | | | | | | | | | | Make progname a string, and cast when calling asn1. Remove variable set but never used.
| | * | zebra: fix warnings in forward procStephen Hemminger2012-01-021-5/+4
| | | | | | | | | | | | | | | | | | | | Check result of fgets(), and don't set variable that is never used.
| | * | bgpd: cleanup privs on terminationStephen Hemminger2012-01-021-0/+1
| | | | | | | | | | | | | | | | | | | | When doing valgrind testing, the privledges from zprivs_init() need to be cleaned up on exit.
| | * | ospfd: remove unused codeStephen Hemminger2012-01-025-101/+6
| | | | | | | | | | | | | | | | | | | | The code for nssa_range and other bits that were written but never used.
| | * | bgpd: store nexthop info for redistributed IPV6 routesStephen Hemminger2012-01-023-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | BGP was ignoring nexthop info for static and other redistributed routes for IPv6. Build extra attribute info to store the nexthop. See also: https://bugzilla.vyatta.com/show_bug.cgi?id=6073
| | * | ospfd: avoid redundant lookup in ospf_redistribute_withdrawStephen Hemminger2012-01-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old algorithim looked up every node twice as it withdrew the entry. It looks up entry once in redistribute_withdraw, then looks it up again info_delete. Use result of first lookup to do the free directly. This may explain the slow performance observed in https://bugzilla.vyatta.com/show_bug.cgi?id=4421
| | * | lib: fix memory leak on connect() failureStephen Hemminger2012-01-021-12/+11
| | | | | | | | | | | | | | | | | | | | Change sockunion_log() to not use strdup(). This fixes a small memory leak that occurs on every failed connect(), and is simpler/cleaner.
| | * | lib: call filter delete hook before freeing access listStephen Hemminger2012-01-021-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The delete_hook was being run after calling access list delete function. This would cause ospf to dereference a NULL, in ospf_filter_update because 'access->name' was already freed. See also: https://bugzilla.vyatta.com/show_bug.cgi?id=7654
| | * | lib: fix type-punning in ip_masklen()Denis Ovsienko2012-01-021-2/+7
| | | | | | | | | | | | | | | | | | | | ip_masklen() was likely to return incorrect results after being compiled with -fstrict-aliasing (-O2, -O3, -Os)
| | * | lib: optimize ip_masklen()Denis Ovsienko2012-01-021-25/+2076
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new implementation makes use of a 64KB mapping table, which makes it possible to compute masklen faster and with constant execution time. The map also allows for additional version of the function, which can detect errors in input argument. The previous implementation had a variable cost of execution, which depended on masklen in a non-linear manner, and at its worst (/31) was 4 times slower, than the new implementation. The only case of old function just slightly outperforming the new one is /0, which is of little practical interest.
| | * | Revert "lib: optimize apply_mask_ipv6()"Denis Ovsienko2012-01-011-7/+17
| | | | | | | | | | | | | | | | | | | | Experience with IPv4 counterpart of this function suggests, that this way of type-punning is likely to cause errors.
| | * | ospfd: more info in LSA checksum warning (BZ#685)Jaroslav Fojtik2011-12-211-2/+7
| | | |
| | * | zebra: spellingDenis Ovsienko2011-12-131-2/+2
| | | |
| | * | build: delete .cvsignore filesDenis Ovsienko2011-12-1327-299/+0
| | | |
| | * | ospfd: spellingDenis Ovsienko2011-12-131-2/+2
| | | |
| | * | lib: clearing zclient.c for some cases of buildingVyacheslav Trushkin2011-12-131-1/+3
| | | | | | | | | | | | | | | | | | | | lib/zclient.c: using of HAVE_TCP_ZEBRA in zclient_socket_* definitions extended by else clause.
| | * | quagga: option "-z" ("--socket <path>") addedVyacheslav Trushkin2011-12-1312-52/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | isisd: indent longopts arrayVyacheslav Trushkin2011-12-131-9/+9
| | | |