def run_multiple_routing_bgp(netconf_service, session): crud = CRUDService() codec = CodecService() codec_provider = CodecServiceProvider() crud.delete(session, bgp()) crud.delete(session, RoutingPolicy()) multi_cfg = _get_bgp_routing_multiple_object() multi_payload_expected = codec.encode(codec_provider, multi_cfg) result = netconf_service.edit_config(session, Datastore.candidate, multi_cfg) assert 'ok' in result multi_filter = {'bgp':bgp(), 'routing-policy':RoutingPolicy()} multi_entity_read = netconf_service.get_config(session, Datastore.candidate, multi_filter) multi_payload_actual = codec.encode(codec_provider, multi_entity_read) assert multi_payload_expected == multi_payload_actual
def _get_routing_cfg(): routing_policy = RoutingPolicy() pass_all_policy_defn = RoutingPolicy.PolicyDefinitions.PolicyDefinition() pass_all_policy_defn.name = 'PASS-ALL' routing_policy.policy_definitions.policy_definition.append(pass_all_policy_defn) pass_all_policy_defn.parent = routing_policy.policy_definitions # RoutingPolicy.DefinedSets.BgpDefinedSets.CommunitySets.CommunitySet() # comm_set.community_set_name = 'testing' #comm_set.config.community_member.append("65172:16001") #comm_set.config.community_member.append("65172:16032") # routing_policy.defined_sets.bgp_defined_sets.community_sets.community_set.append(comm_set) return routing_policy
def bgp_run(crud_service, session): # Global config bgp_cfg = openconfig_bgp.Bgp() try: crud_service.delete(session, bgp_cfg) except Exception: print('BGP config does not exist!') #set up routing policy definition routing_policy = RoutingPolicy() #first delete try: crud_service.delete(session, routing_policy) except YPYError: print('Routing policy does not exist!') pass_all_policy_defn = RoutingPolicy.PolicyDefinitions.PolicyDefinition() pass_all_policy_defn.name = 'PASS-ALL' routing_policy.policy_definitions.policy_definition.append( pass_all_policy_defn) pass_all_policy_defn._parent = routing_policy.policy_definitions bgp_cfg.global_.config.as_ = 65001 ipv4_afsf = bgp_cfg.global_.afi_safis.AfiSafi() ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity() ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity() ipv4_afsf.config.enabled = True ipv6_afsf = bgp_cfg.global_.afi_safis.AfiSafi() ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity() ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity() ipv6_afsf.config.enabled = True bgp_cfg.global_.afi_safis.afi_safi.append(ipv4_afsf) bgp_cfg.global_.afi_safis.afi_safi.append(ipv6_afsf) # Global config done # IPv4 Neighbor instance config nbr_ipv4 = bgp_cfg.neighbors.Neighbor() nbr_ipv4.neighbor_address = '192.168.1.1' nbr_ipv4.config.neighbor_address = '192.168.1.1' nbr_ipv4.config.peer_as = 65002 nbr_ipv4_afsf = nbr_ipv4.afi_safis.AfiSafi() nbr_ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity() nbr_ipv4_afsf.config.peer_as = 65002 nbr_ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity( ) nbr_ipv4_afsf.config.enabled = True # Create afi-safi policy instances nbr_ipv4_afsf.apply_policy.config.import_policy.append('PASS-ALL') nbr_ipv4_afsf.apply_policy.config.export_policy.append('PASS-ALL') nbr_ipv4.afi_safis.afi_safi.append(nbr_ipv4_afsf) bgp_cfg.neighbors.neighbor.append(nbr_ipv4) nbr_ipv4.parent = bgp_cfg.neighbors # IPv4 Neighbor instance config done crud_service.create(session, bgp_cfg) # crud_service.create(session, routing_policy) bgp_cfg_read = crud_service.read(session, bgp.Bgp()) #crud on just the neighbor # IPv6 Neighbor instance config nbr_ipv6 = bgp.Bgp.Neighbors.Neighbor() #nbr_ipv6.parent = bgp_cfg.neighbors nbr_ipv6.neighbor_address = '2001:db8:fff1::1' nbr_ipv6.config.neighbor_address = '2001:db8:fff1::1' nbr_ipv6.config.peer_as = 65002 nbr_ipv6_afsf = nbr_ipv6.afi_safis.AfiSafi() nbr_ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity() nbr_ipv6_afsf.config.peer_as = 65002 nbr_ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity( ) nbr_ipv6_afsf.config.enabled = True # Create afi-safi policy instances nbr_ipv6_afsf.apply_policy.config.import_policy.append('PASS-ALL') nbr_ipv6_afsf.apply_policy.config.export_policy.append('PASS-ALL') nbr_ipv6.afi_safis.afi_safi.append(nbr_ipv6_afsf) crud_service.create(session, nbr_ipv6) #now delete nbr_ipv4 crud_service.delete(session, nbr_ipv4) nbr_ipv6_filter = bgp.Bgp.Neighbors.Neighbor() nbr_ipv6_filter.neighbor_address = '2001:db8:fff1::1' nbr_ipv6_read = crud_service.read(session, nbr_ipv6_filter) # help(nbr_ipv6_read) print(nbr_ipv6_read)