Annotation of embedaddon/quagga/doc/routemap.texi, revision 1.1

1.1     ! misho       1: @node Route Map
        !             2: @chapter Route Map
        !             3: 
        !             4: Route maps provide a means to both filter and/or apply actions to
        !             5: route, hence allowing policy to be applied to routes.
        !             6: 
        !             7: @menu
        !             8: * Route Map Command::           
        !             9: * Route Map Match Command::     
        !            10: * Route Map Set Command::
        !            11: * Route Map Call Command::
        !            12: * Route Map Exit Action Command::
        !            13: * Route Map Examples::
        !            14: @end menu
        !            15: 
        !            16: Route-maps are an ordered list of route-map entries. Each entry may
        !            17: specify up to four distincts sets of clauses:
        !            18: 
        !            19: @table @samp
        !            20: @item Matching Policy
        !            21: 
        !            22: This specifies the policy implied if the @samp{Matching Conditions} are
        !            23: met or not met, and which actions of the route-map are to be taken, if
        !            24: any. The two possibilities are:
        !            25: 
        !            26: @itemize @minus
        !            27: @item
        !            28: @samp{permit}: If the entry matches, then carry out the @samp{Set
        !            29: Actions}. Then finish processing the route-map, permitting the route,
        !            30: unless an @samp{Exit Action} indicates otherwise.
        !            31: 
        !            32: @item
        !            33: @samp{deny}: If the entry matches, then finish processing the route-map and
        !            34: deny the route (return @samp{deny}).
        !            35: @end itemize
        !            36: 
        !            37: The @samp{Matching Policy} is specified as part of the command which
        !            38: defines the ordered entry in the route-map. See below.
        !            39: 
        !            40: @item Matching Conditions
        !            41: 
        !            42: A route-map entry may, optionally, specify one or more conditions which
        !            43: must be matched if the entry is to be considered further, as governed
        !            44: by the Match Policy. If a route-map entry does not explicitely specify
        !            45: any matching conditions, then it always matches.
        !            46: 
        !            47: @item Set Actions
        !            48: 
        !            49: A route-map entry may, optionally, specify one or more @samp{Set
        !            50: Actions} to set or modify attributes of the route.
        !            51: 
        !            52: @item Call Action
        !            53: 
        !            54: Call to another route-map, after any @samp{Set Actions} have been
        !            55: carried out. If the route-map called returns @samp{deny} then
        !            56: processing of the route-map finishes and the route is denied,
        !            57: regardless of the @samp{Matching Policy} or the @samp{Exit Policy}. If
        !            58: the called route-map returns @samp{permit}, then @samp{Matching Policy}
        !            59: and @samp{Exit Policy} govern further behaviour, as normal.
        !            60: 
        !            61: @item Exit Policy
        !            62: 
        !            63: An entry may, optionally, specify an alternative @samp{Exit Policy} to
        !            64: take if the entry matched, rather than the normal policy of exiting the
        !            65: route-map and permitting the route. The two possibilities are:
        !            66: 
        !            67: @itemize @minus 
        !            68: @item
        !            69: @samp{next}: Continue on with processing of the route-map entries.
        !            70: 
        !            71: @item
        !            72: @samp{goto N}: Jump ahead to the first route-map entry whose order in
        !            73: the route-map is >= N. Jumping to a previous entry is not permitted.
        !            74: @end itemize
        !            75: @end table
        !            76: 
        !            77: The default action of a route-map, if no entries match, is to deny.
        !            78: I.e. a route-map essentially has as its last entry an empty @samp{deny}
        !            79: entry, which matches all routes. To change this behaviour, one must
        !            80: specify an empty @samp{permit} entry as the last entry in the route-map.
        !            81: 
        !            82: To summarise the above:
        !            83: 
        !            84: @multitable {permit} {action} {No Match}
        !            85: @headitem           @tab Match  @tab No Match
        !            86: @item @emph{Permit} @tab action @tab cont
        !            87: @item @emph{Deny}   @tab deny   @tab cont
        !            88: @end multitable
        !            89: 
        !            90: @table @samp
        !            91: 
        !            92: @item action
        !            93: @itemize @minus
        !            94: @item
        !            95: Apply @emph{set} statements
        !            96: 
        !            97: @item
        !            98: If @emph{call} is present, call given route-map. If that returns a @samp{deny}, finish
        !            99: processing and return @samp{deny}.
        !           100: 
        !           101: @item
        !           102: If @samp{Exit Policy} is @emph{next}, goto next route-map entry
        !           103: 
        !           104: @item
        !           105: If @samp{Exit Policy} is @emph{goto}, goto first entry whose order in the list
        !           106: is >= the given order.
        !           107: 
        !           108: @item
        !           109: Finish processing the route-map and permit the route.
        !           110: @end itemize
        !           111: 
        !           112: @item deny
        !           113: @itemize @minus
        !           114: @item
        !           115: The route is denied by the route-map (return @samp{deny}).
        !           116: @end itemize
        !           117: 
        !           118: @item cont
        !           119: @itemize @minus
        !           120: @item
        !           121: goto next route-map entry
        !           122: @end itemize
        !           123: @end table
        !           124: 
        !           125: @node Route Map Command
        !           126: @section Route Map Command
        !           127: 
        !           128: @deffn {Command} {route-map @var{route-map-name} (permit|deny) @var{order}} {}
        !           129: 
        !           130: Configure the @var{order}'th entry in @var{route-map-name} with
        !           131: @samp{Match Policy} of either @emph{permit} or @emph{deny}.
        !           132: 
        !           133: @end deffn
        !           134: 
        !           135: @node Route Map Match Command
        !           136: @section Route Map Match Command
        !           137: 
        !           138: @deffn {Route-map Command} {match ip address @var{access_list}} {}
        !           139: Matches the specified @var{access_list}
        !           140: @end deffn
        !           141: 
        !           142: @deffn {Route-map Command} {match ip next-hop @var{ipv4_addr}} {}
        !           143: Matches the specified @var{ipv4_addr}.
        !           144: @end deffn
        !           145: 
        !           146: @deffn {Route-map Command} {match aspath @var{as_path}} {}
        !           147: Matches the specified @var{as_path}.
        !           148: @end deffn
        !           149: 
        !           150: @deffn {Route-map Command} {match metric @var{metric}} {}
        !           151: Matches the specified @var{metric}.
        !           152: @end deffn
        !           153: 
        !           154: @deffn {Route-map Command} {match community @var{community_list}} {}
        !           155: Matches the specified  @var{community_list}
        !           156: @end deffn
        !           157: 
        !           158: @node Route Map Set Command
        !           159: @section Route Map Set Command
        !           160: 
        !           161: @deffn {Route-map Command} {set ip next-hop @var{ipv4_address}} {}
        !           162: Set the BGP nexthop address.
        !           163: @end deffn
        !           164: 
        !           165: @deffn {Route-map Command} {set local-preference @var{local_pref}} {}
        !           166: Set the BGP local preference.
        !           167: @end deffn
        !           168: 
        !           169: @deffn {Route-map Command} {set weight @var{weight}} {}
        !           170: Set the route's weight.
        !           171: @end deffn
        !           172: 
        !           173: @deffn {Route-map Command} {set metric @var{metric}} {}
        !           174: Set the BGP attribute MED.
        !           175: @end deffn
        !           176: 
        !           177: @deffn {Route-map Command} {set as-path prepend @var{as_path}} {}
        !           178: Set the BGP AS path to prepend.
        !           179: @end deffn
        !           180: 
        !           181: @deffn {Route-map Command} {set community @var{community}} {}
        !           182: Set the BGP community attribute.
        !           183: @end deffn
        !           184: 
        !           185: @deffn {Route-map Command} {set ipv6 next-hop global @var{ipv6_address}} {}
        !           186: Set the BGP-4+ global IPv6 nexthop address.
        !           187: @end deffn
        !           188: 
        !           189: @deffn {Route-map Command} {set ipv6 next-hop local @var{ipv6_address}} {}
        !           190: Set the BGP-4+ link local IPv6 nexthop address.
        !           191: @end deffn
        !           192: 
        !           193: @node Route Map Call Command
        !           194: @section Route Map Call Command
        !           195: 
        !           196: @deffn {Route-map Command} {call @var{name}} {}
        !           197: Call route-map @var{name}. If it returns deny, deny the route and
        !           198: finish processing the route-map.
        !           199: @end deffn
        !           200: 
        !           201: @node Route Map Exit Action Command
        !           202: @section Route Map Exit Action Command
        !           203: 
        !           204: @deffn {Route-map Command} {on-match next} {}
        !           205: @deffnx {Route-map Command} {continue} {}
        !           206: Proceed on to the next entry in the route-map.
        !           207: @end deffn
        !           208: 
        !           209: @deffn {Route-map Command} {on-match goto @var{N}} {}
        !           210: @deffnx {Route-map Command} {continue @var{N}} {}
        !           211: Proceed processing the route-map at the first entry whose order is >= N
        !           212: @end deffn
        !           213: 
        !           214: @node Route Map Examples
        !           215: @section Route Map Examples
        !           216: 
        !           217: A simple example of a route-map:
        !           218: 
        !           219: @example
        !           220: @group
        !           221: route-map test permit 10
        !           222:  match ip address 10
        !           223:  set local-preference 200
        !           224: @end group
        !           225: @end example
        !           226: 
        !           227: This means that if a route matches ip access-list number 10 it's
        !           228: local-preference value is set to 200.
        !           229: 
        !           230: See @ref{BGP Configuration Examples} for examples of more sophisticated
        !           231: useage of route-maps, including of the @samp{call} action.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>