f5-declarative-onboarding icon indicating copy to clipboard operation
f5-declarative-onboarding copied to clipboard

BGP - as-override option under address-family

Open AnthonyF5 opened this issue 2 years ago • 4 comments

Is your feature request related to a problem? Please describe.

Missing option in DO schema for BGP to enabling the option as-override under the address-family.

address-family [add | delete | modify | replace-all-with] {
                              [ [name] ] {
                                    options:
                                      activate [disabled | enabled]
                                      allow-as-in [[string] | none]
                            >>        as-override [disabled | enabled]
                                      attribute-unchanged {
                                          as-path [disabled | enabled]
                                          med [disabled | enabled]
                                          next-hop [disabled | enabled]
                                      }

Describe the solution you'd like

Please add the option as its a request from a customer.

Describe alternatives you've considered

Alternative is to use the TMSH options for BGP.

modify net routing bgp bgp_tcp_decrypt neighbor add { 1.2.3.4 { remote-as 65200  address-family { ipv4 { as-override enabled } } } 5.6.7.8 { remote-as 65201  address-family { ipv4 { as-override enabled } } } }

Additional context

None.

AnthonyF5 avatar Nov 29 '23 23:11 AnthonyF5

Jira item AUTOTOOL-4107 - Adding to the next sprint

mdditt2000 avatar Nov 30 '23 18:11 mdditt2000

I am seeking some clarification. In the TMSH example above 'address-family' is under 'neighbor' but as far as I can tell DO does not currently support 'address-family' being a member of 'neighbor'. That would make this an issue to add 'address-family' under 'neighbor' as well which internally will require a bigger window to schedule the work.

There are at least 2 other 'address-family' properties in the TMSH 'net routing bgp' object. One is at the top-level and does not have an 'as-override' property as far as I can tell. The second is under 'peer-group'. This 'address-family' is currently supported by DO and DO does support attaching a 'peer-group' (peerGroup) under neighbor.

Do you want the 'as-override' property for 'address-family' under 'neighbor', 'peer-group', or both?

RobCupples avatar Dec 06 '23 20:12 RobCupples

Hi

Do you want the 'as-override' property for 'address-family' under 'neighbor', 'peer-group', or both? The BGP section is under neigbour > address-family per below reference (>>>):

Reference page is TMSH BGP reference

MODULE net routing
SYNTAX
   CREATE/MODIFY
	create bgp [name]
	modify bgp [name]
	  options:
	    allow-infinite-hold-time [disabled | enabled]
	    always-compare-med [disabled | enabled]
	    bestpath {
		as-path-ignore [disabled | enabled]
		compare-confed-aspath [disabled | enabled]
		compare-originator-id [disabled | enabled]
		compare-routerid [disabled | enabled]
		med {
		    confed [disabled | enabled]
		    missing-as-worst [disabled | enabled]
		    remove-recv-med [disabled | enabled]
		    remove-send-med [disabled | enabled]
		}
		tie-break-on-age [disabled | enabled]
	    }
	    client-to-client-reflection [disabled | enabled]
	    cluster-id [integer]
	    confederation {
		identifier [integer]
		peers [[string] | none]
	    }
	    dampening {
		reachability-half-life [integer]
		reuse [integer]
		route-map [[string] | none]
		state [disabled | enabled]
		suppress [integer]
		suppress-max [integer]
		unreachability-half-life [integer]
	    }
	    default-local-preference [integer]
	    description [[string] | none]
	    deterministic-med [disabled | enabled]
	    enabled [true | false]
	    enforce-first-as [disabled | enabled]
	    fast-external-failover [disabled | enabled]
	    graceful-restart {
		graceful-reset [disabled | enabled]
		restart-time [integer]
		stalepath-time [integer]
	    }
	    graceful-shutdown {
		capable [disabled | enabled]
		local-preference [integer]
		mode [disabled | enabled]
	    }
	    hold-time [integer]
	    keep-alive [integer]
	    local-as [integer]
	    log-neighbor-changes [disabled | enabled]
	    profile [[string] | none]
	    route-domain [[string] | none]
	    router-id [ip address]
	    scan-time [integer]
	    synchronization [disabled | enabled]
	    update-delay [integer]
	    view [disabled | enabled]
	    address-family [add | delete | modify | replace-all-with] {
	       [ [name] ] {
		 options:
		   auto-summary [disabled | enabled]
		   distance {
		       external [integer]
		       internal [integer]
		       local [integer]
		   }
		   network-synchronization [disabled | enabled]
		   aggregate-address [add | delete | modify | replace-all-with] {
		      [ [name] ] {
			options:
			  as-set [disabled | enabled]
			  summary-only [disabled | enabled]
		      }
		   }
		   redistribute [add | delete | modify | replace-all-with] {
		      [ [name] ] {
			options:
			  route-map [[string] | none]
		      }
		   }
	       }
	    }
	    distance [add | delete | modify | replace-all-with] {
	       [ [name] ] {
		 options:
		   access-list [[string] | none]
		   distance [integer]
	       }
	    }
	    neighbor [add | delete | modify | replace-all-with] {
	       [ [name] ] {
		 options:
		   advertisement-interval [integer]
		   allow-infinite-hold-time [disabled | enabled]
		   as-origination-interval [integer]
		   capability {
		       dynamic [disabled | enabled]
		       route-refresh [disabled | enabled]
		   }
		   capability-negotiate {
		       override [disabled | enabled]
		       state [disabled | enabled]
		       strict-match [disabled | enabled]
		   }
		   collide-established [disabled | enabled]
		   connect-timer [integer]
		   description [[string] | none]
		   ebgp-multihop [integer]
		   enabled [true | false]
		   enforce-multihop [disabled | enabled]
		   fall-over [[string] | none]
		   graceful-shutdown {
		       mode [disabled | enabled]
		       timer [integer]
		   }
		   hold-time [integer]
		   keep-alive [integer]
		   local-as [integer]
		   passive [disabled | enabled]
		   password [[string] | none]
		   peer-group [[string] | none]
		   port [integer]
		   remote-as [integer]
		   restart-time [integer]
		   update-source [[string] | none]
		   version [integer]
		   vlan [[string] | none]
		   address-family [add | delete | modify | replace-all-with] {
		      [ [name] ] {
			options:
			  activate [disabled | enabled]
			  allow-as-in [[string] | none]
	>>>		  as-override [disabled | enabled]
			  attribute-unchanged {
			      as-path [disabled | enabled]
			      med [disabled | enabled]
			      next-hop [disabled | enabled]
			  }
			  capability {
			      graceful-restart [disabled | enabled]
			      orf {
				  prefix-list [[string] | none]
			      }
			  }
			  default-originate {
			      route-map [[string] | none]
			      state [disabled | enabled]
			  }
			  distribute-list {
			      in [[string] | none]
			      out [[string] | none]
			  }
			  filter-list {
			      in [[string] | none]
			      out [[string] | none]
			  }
			  maximum-prefix {
			      threshold [[string] | none]
			      value [integer]
			      warning-only [disabled | enabled]
			  }
			  next-hop-self [disabled | enabled]
			  prefix-list {
			      in [[string] | none]
			      out [[string] | none]
			  }
			  remove-private-as [disabled | enabled]
			  route-map {
			      in [[string] | none]
			      out [[string] | none]
			  }
			  route-reflector-client [disabled | enabled]
			  route-server-client [disabled | enabled]
			  send-community [[string] | none]
			  soft-reconfiguration-inbound [disabled | enabled]
			  unsuppress-map [[string] | none]
			  weight [[string] | none]
		      }
		   }
	       }
	    }

AnthonyF5 avatar Dec 06 '23 21:12 AnthonyF5

Thanks. Hope I wasn't too annoying. I was caught off guard by the request for just 1 property when this particular address-family is not currently in DO.

RobCupples avatar Dec 07 '23 01:12 RobCupples