diff --git a/geant/gap_ansible/roles/bgp_config/tasks/main.yml b/geant/gap_ansible/roles/bgp_config/tasks/main.yml index 13eca9efa55c06677c5a50df361cb0c55512cff5..7bf1d663e56f855f221b65faabacf0b4837242e0 100644 --- a/geant/gap_ansible/roles/bgp_config/tasks/main.yml +++ b/geant/gap_ansible/roles/bgp_config/tasks/main.yml @@ -1,5 +1,17 @@ --- # tasks file for bgp_config +- name: Set BGP V4 session object to check for custom policies + ansible.builtin.set_fact: + bgp_session_v4: "{{ ap.sbp | json_query(query) }}" + vars: + query: "bgp_session_list[?ip_type == 'ipv4'] | [0]" + +- name: Set BGP V6 session object to check for custom policies + ansible.builtin.set_fact: + bgp_session_v6: "{{ ap.sbp | json_query(query) }}" + vars: + query: "bgp_session_list[?ip_type == 'ipv6'] | [0]" + - name: Load Standard Policy Statements vars ansible.builtin.include_tasks: merge_vars.yaml diff --git a/geant/gap_ansible/roles/bgp_config/tasks/merge_vars.yaml b/geant/gap_ansible/roles/bgp_config/tasks/merge_vars.yaml index 77676232f0a50f972531cc23264d6429c2fff79f..a29606a9541075c298d7a457c75805e82bc85b1a 100644 --- a/geant/gap_ansible/roles/bgp_config/tasks/merge_vars.yaml +++ b/geant/gap_ansible/roles/bgp_config/tasks/merge_vars.yaml @@ -1,7 +1,35 @@ --- -- name: Set Standard Import and export policies names +- name: Set Standard BGP import and export policy names for GEANT_IP + when: > + subscription.l3_core_service_type in ["GEANT_IP", "GEANT IP"] ansible.builtin.set_fact: import_policies_v4: "{{ bgp.policies.import.v4 }}" import_policies_v6: "{{ bgp.policies.import.v6 }}" export_policies_v4: "{{ bgp.policies.export.v4 }}" export_policies_v6: "{{ bgp.policies.export.v6 }}" + +- name: Set standard BGP import and export policy names for LHCONE + when: > + subscription.l3_core_service_type in ["LHCONE"] + and + not bgp_session_v4.has_custom_policies | ansible.builtin.bool + or + not bgp_session_v4.has_custom_policies | ansible.builtin.bool + ansible.builtin.set_fact: + import_policies_v4: "{{ bgp.policies.import.v4 }}" + import_policies_v6: "{{ bgp.policies.import.v6 }}" + export_policies_v4: "{{ bgp.policies.export.v4 }}" + export_policies_v6: "{{ bgp.policies.export.v6 }}" + +- name: Set custom BGP import and export policy names for LHCONE + when: > + subscription.l3_core_service_type in ["LHCONE"] + and + bgp_session_v4.has_custom_policies | ansible.builtin.bool + or + bgp_session_v4.has_custom_policies | ansible.builtin.bool + ansible.builtin.set_fact: + import_policies_v4: "{{ bgp_custom.policies.import.v4 }}" + import_policies_v6: "{{ bgp_custom.policies.import.v6 }}" + export_policies_v4: "{{ bgp_custom.policies.export.v4 }}" + export_policies_v6: "{{ bgp_custom.policies.export.v6 }}" diff --git a/geant/gap_ansible/roles/bgp_config/templates/bgp.j2 b/geant/gap_ansible/roles/bgp_config/templates/bgp.j2 index 47b82cfbed8b479f485baaa1b02904c55fb4bd2b..1ff0260942f57d516d1ba103e27261f62474a345 100644 --- a/geant/gap_ansible/roles/bgp_config/templates/bgp.j2 +++ b/geant/gap_ansible/roles/bgp_config/templates/bgp.j2 @@ -1,9 +1,17 @@ - + {% if subscription.l3_core_service_type in ['GEANT_IP', 'GEANT IP'] %} <router xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> <router-name>Base</router-name> <bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> {% include 'bgp_neighbor.j2' %} </bgp> - </router> - + {% elif subscription.l3_core_service_type in ['LHCONE'] %} + <service xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> + <vprn xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> + <service-name>{{ vprn_name }}</service-name> + <bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> + {% include 'bgp_neighbor.j2' %} + </bgp> + </vprn> + </service> + {% endif %}