Commit Graph

1567 Commits

Author SHA1 Message Date
paul
fee0f4c629 2004-09-13 Jose Luis Rubio <jrubio@dit.upm.es>
(at Technical University of Madrid as part of Euro6ix Project)

        Enhanced Route Server functionality and Route-Maps:

        * bgpd/bgpd.h: Modified 'struct peer' and 'struct bgp_filter' to
        support rs-clients. A 'struct bgp_table *rib' has been added to the
        first (to mantain a separated RIB for each rs-client) and two new
        route-maps have been added to the last (for import/export policies).
        Added the following #defines: RMAP_{IN|OUT|IMPORT|EXPORT|MAX},
        PEER_RMAP_TYPE_{IMPORT|EXPORT} and BGP_CLEAR_SOFT_RSCLIENT.

        * bgpd/bgpd.c: Modified the functions that create/delete/etc peers in
        order to consider the new fields included in 'struct peer' for
        supporting rs-clients, i.e. the import/export route-maps and the
        'struct bgp_table'.

        * bgpd/bgp_route.{ch}: Modified several functions related with
        receiving/sending announces in order to support the new Route Server
        capabilities.
        Function 'bgp_process' has been reorganized, creating an auxiliar
        function for best path selection ('bgp_best_selection').
        Modified 'bgp_show' and 'bgp_show_route' for displaying information
        about any RIB (and not only the main bgp RIB).
        Added commands for displaying information about RS-clients RIBs:
        'show bgp rsclient (A.B.C.D|X:X::X:X)', 'show bgp rsclient
        (A.B.C.D|X:X::X:X) X:X::X:X/M', etc

        * bgpd/bgp_table.{ch}: The structure 'struct bgp_table' now has two
        new fields: type (which can take the values BGP_TABLE_{MAIN|RSCLIENT})
        and 'void *owner' which points to 'struct bgp' or 'struct peer' which
        owns the table.
        When creating a new bgp_table by default 'type=BGP_TABLE_MAIN' is set.

        * bgpd/bgp_vty.c: The commands 'neighbor ... route-server-client' and
        'no neighbor ... route-server-client' now not only set/unset the flag
        PEER_FLAG_RSERVER_CLIENT, but they create/destroy the 'struct
        bgp_table' of the peer. Special actions are taken for peer_groups.
        Command 'neighbor ... route-map WORD (in|out)' now also supports two
        new kinds of route-map: 'import' and 'export'.
        Added commands 'clear bgp * rsclient', etc. These commands allow a new
        kind of soft_reconfig which affects only the RIB of the specified
        RS-client.
        Added commands 'show bgp rsclient summary', etc which display a
        summary of the rs-clients configured for the corresponding address
        family.

        * bgpd/bgp_routemap.c: A new match statement is available,
        'match peer (A.B.C.D|X:X::X:X)'. This statement can only be used in
        import/export route-maps, and it matches when the peer who announces
        (when used in an import route-map) or is going to receive (when used
        in an export route-map) the route is the same than the one specified
        in the statement.
        For peer-groups the statement matches if the specified peer is member
        of the peer-group.
        A special version of the command, 'match peer local', matches with
        routes originated by the Route Server (defined with 'network ...',
        redistributed routes and default-originate).

        * lib/routemap.{ch}: Added a new clause 'call NAME' for use in
        route-maps. It jumps into the specified route-map and when it returns
        the first route-map ends if the called RM returns DENY_MATCH, or
        continues in other case.
2004-09-13 05:12:46 +00:00
paul
f5ba387492 2004-07-09 Sowmini Varadhan <sowmini.varadhan@sun.com>
* bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket
          if that is connection we're closing.
          (bgp_read) invalid marker check applies to KEEPALIVE too.
        * bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.
2004-07-09 12:11:31 +00:00
paul
5228ad27e2 2004-06-04 Paul Jakma <paul@dishone.st>
* type mismatch fixes
2004-06-04 17:58:18 +00:00
hasso
e0701b7955 Merge bgpd changeset 1176 from Zebra repository by Rivo Nurges. 2004-05-20 09:19:34 +00:00
paul
35be31b6b2 2004-05-01 rivo nurges <rix@estpak.ee>
* bgp_route.c: fix UNH IOL BGP-4.1.12f
2004-05-01 18:17:04 +00:00
paul
eb821189d2 2004-05-01 Paul Jakma <paul@dishone.st>
* Revert the attempted clean-up of the dummy peer hack, reverts
          patchsets 435 (see 2004-02-17 below) and 456.
2004-05-01 08:44:08 +00:00
paul
545acafbf5 2004-04-16 rivo nurges <rix@estpak.ee>
* bgpd.h: update cease subcodes to draft-ietf-idr-cease-subcode-05
        * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a
2004-04-20 15:13:15 +00:00
paul
6ad23f05e3 2004-02-17 Paul Jakma <paul@dishone.st>
* bgpd.h: (bgp_peer) add fd_local and fd_accept
          file descriptor's, fd becomes a pointer to one of these.
        * bgpd.c: (global) adjust for fact that fd is now a pointer.
          (peer_create_accept) removed.
        * bgp_route.c: (global) adjust for change of peer fd to pointer
        * bgp_packet.c: (bgp_collision_detect) adjust and remove the
          "replace with other peer" hack.
        * bgp_network.c: (bgp_accept) Remove the dummy peer hack.
          Update peer->fd_accept instead.
          (global) Adjust fd references - now a pointer.
        * bgp_fsm.c: (global) adjust peer fd to pointer.
          (bgp_connection_stop) new function, to stop connection.
          (global) adjust everything which closed peer fd to use
          bgp_connection_stop().
2004-02-17 19:45:10 +00:00
paul
c001ae6281 2003-11-03 Paul Jakma <paul@dishone.st>
* bgpd/bgp_route.c: Delete some extraneous whitespace. Credit to
	  a person on #quagga whose name I unfortunately can not recall.
2003-11-03 12:37:43 +00:00
paul
bb46e94fcc 2003-10-24 Jose Luis Rubio Guivernau <jrubio@dit.upm.es>
* Better 'show bgp' support for views (eg ipv6), see [quagga-dev 238]
        * bgpd/bgp_route.c: (bgp_show) Take a struct bgp argument instead of
          view string.
          (bgp_show_neighbor_route) Take a struct peer argument instead of
          ip string.
          (peer_adj_routes) ditto
          (show_adj_routes) ditto
          (peer_lookup_in_view) new function to return appropriate struct
          peer for a given view string.
          (misc) Fixup all calls to above to reflect new calling arguments,
          and use peer_lookup_in_view as needed. Additional commands
          installed to use expanded functionality above, existing commands
          modified to suit as well.
        * bgpd/bgp_vty.c: 2 new aliases.
2003-10-24 19:02:03 +00:00
paul
3b424979f5 2003-10-13 Jay Fenlason <fenlason@redhat.com>
* lib/zebra.h: define UINT32_MAX for those systems which do not
	  provide it.
	* bgp_attr.h: define BGP_MED_MAX.
	* bgp_route.c: update defines/constants to BGP_MED_MAX.
	* bgp_routemap.c: ditto. clean up route_match_metric_compile
	  slightly to avoid unneccesary XMALLOC.
2003-10-13 09:47:32 +00:00
paul
50d649aaf9 2003-08-27 Kunihiro Ishiguro <kunihiro@zebra.org>
* bgpd/bgp_route.c: Unrevert the revert of the possible first fix
	  for maximum-prefix.
2003-08-27 12:25:49 +00:00
paul
c22854b878 2003-08-27 Kunihiro Ishiguro <kunihiro@zebra.org>
* bgpd/bgp_route.c: More work on bgp maximum prefix support
2003-08-27 07:07:02 +00:00
paul
c2f3a4cc77 2003-08-26 Kunihiro <kunihiro@zebra.org>
* bgpd/bgp_route.c: fix maximum prefix comparison
2003-08-26 04:11:35 +00:00
paul
ac41b2a2d4 2003-08-11 kunihiro <kunihiro@zebra.org
* bgp_route{,map}.c: Extend 'set ip next-hop' in route-maps with
         ability to specify 'peer-address' rather than IP.
2003-08-12 05:32:27 +00:00
paul
286e1e7153 2003-08-07 kunihiro <kunihiro@zebra.org>
* bgpd/bgp_route.c: route server passes routes which may have
	  no-export community
2003-08-08 00:24:31 +00:00
paul
718e374419 Initial revision 2002-12-13 20:15:29 +00:00