)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a56fe6644d3127375ae8dbba7e1035aaec701f60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f863a166_251bc5b8","updated":"2026-06-22 12:34:19.000000000","message":"Seems good to me :) thanks!","commit_id":"de03c7c9f3a83c41ab32e0e4f4eaac0257fc15eb"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"16beb9c1e88056786bdec8cf35ff4e2d27a72d9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bec929f8_44bff798","updated":"2026-06-22 15:30:01.000000000","message":"recheck 994308 updated","commit_id":"dbf52b3b951021252106bf570a974175064cd521"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"c1dfd36487969a2629d3a4af3b555429f0b107ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6547c432_2f255b9e","updated":"2026-06-23 10:02:11.000000000","message":"recheck dependencies updated","commit_id":"20f89bd64b6ff4b67958649afe2ba0ef73c29a85"}],"playbooks/collect_bgp_diagnostics.yaml":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":28,"context_line":"        vtysh -c \"show bgp summary\" 2\u003e\u00261"},{"line_number":29,"context_line":"        vtysh -c \"show bfd peers\" 2\u003e\u00261"},{"line_number":30,"context_line":"        {% if enable_evpn | default(false) %}"},{"line_number":31,"context_line":"        vtysh -c \"show bgp l2vpn evpn\" 2\u003e\u00261"},{"line_number":32,"context_line":"        vtysh -c \"show evpn vni\" 2\u003e\u00261"},{"line_number":33,"context_line":"        {% endif %}"},{"line_number":34,"context_line":"      register: frr_state"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"f627ffd1_0dea7bb8","line":31,"updated":"2026-06-23 14:01:39.000000000","message":"I would also add `vtysh -c \u0027show bgp l2vpn evpn summary\u0027`","commit_id":"b49aa670d187a13ecde340d32ed520ad68108700"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"e7bfacf9497d893dccbd4b3de853f2dd7a7b0e73","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        vtysh -c \"show bgp summary\" 2\u003e\u00261"},{"line_number":29,"context_line":"        vtysh -c \"show bfd peers\" 2\u003e\u00261"},{"line_number":30,"context_line":"        {% if enable_evpn | default(false) %}"},{"line_number":31,"context_line":"        vtysh -c \"show bgp l2vpn evpn\" 2\u003e\u00261"},{"line_number":32,"context_line":"        vtysh -c \"show evpn vni\" 2\u003e\u00261"},{"line_number":33,"context_line":"        {% endif %}"},{"line_number":34,"context_line":"      register: frr_state"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ab13dd3c_0f8abd29","line":31,"in_reply_to":"f627ffd1_0dea7bb8","updated":"2026-06-24 07:05:55.000000000","message":"Done","commit_id":"b49aa670d187a13ecde340d32ed520ad68108700"}],"playbooks/configure_bgp_networking.yaml":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":118,"context_line":"          # via devstack_localrc in the Zuul job definition."},{"line_number":119,"context_line":"          # It is available here because stack.sh sources localrc"},{"line_number":120,"context_line":"          # before executing local.sh."},{"line_number":121,"context_line":"          sudo ip addr add $OVN_EVPN_LOCAL_IP dev lo"},{"line_number":122,"context_line":"          {% endif %}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"          # Ensure the log dir and file are writable by bgpd (runs as frr)."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"348378ff_9f299edd","line":121,"range":{"start_line":121,"start_character":27,"end_line":121,"end_character":46},"updated":"2026-06-23 14:01:39.000000000","message":"Should there be `/32` after `OVN_EVPN_LOCAL_IP`","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"cf4bda3d93227c130bb5d7b7cbe023152efcb697","unresolved":false,"context_lines":[{"line_number":118,"context_line":"          # via devstack_localrc in the Zuul job definition."},{"line_number":119,"context_line":"          # It is available here because stack.sh sources localrc"},{"line_number":120,"context_line":"          # before executing local.sh."},{"line_number":121,"context_line":"          sudo ip addr add $OVN_EVPN_LOCAL_IP dev lo"},{"line_number":122,"context_line":"          {% endif %}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"          # Ensure the log dir and file are writable by bgpd (runs as frr)."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"c1c27c36_8180bf3f","line":121,"range":{"start_line":121,"start_character":27,"end_line":121,"end_character":46},"in_reply_to":"348378ff_9f299edd","updated":"2026-06-24 07:03:48.000000000","message":"Done","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"}],"roles/leaf/templates/frr.conf.j2":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a56fe6644d3127375ae8dbba7e1035aaec701f60","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    neighbor uplink allowas-in origin"},{"line_number":60,"context_line":"    neighbor uplink prefix-list only-host-prefixes in"},{"line_number":61,"context_line":"  exit-address-family"},{"line_number":62,"context_line":"{% if enable_evpn | default(false) %}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  address-family l2vpn evpn"},{"line_number":65,"context_line":"    neighbor downlink activate"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ef983bb5_720be308","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":37},"updated":"2026-06-22 12:34:19.000000000","message":"Do we need this? Can we just always configure the evpn section and for core-BGP it just won\u0027t be used. That would eliminate a lot of logic in the configuration - we won\u0027t even need the global var.","commit_id":"de03c7c9f3a83c41ab32e0e4f4eaac0257fc15eb"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"8fb44528bf6e8b9895fa459fc341a994266f3c85","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    neighbor uplink allowas-in origin"},{"line_number":60,"context_line":"    neighbor uplink prefix-list only-host-prefixes in"},{"line_number":61,"context_line":"  exit-address-family"},{"line_number":62,"context_line":"{% if enable_evpn | default(false) %}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  address-family l2vpn evpn"},{"line_number":65,"context_line":"    neighbor downlink activate"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ba3480b0_361b964a","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":37},"in_reply_to":"ef983bb5_720be308","updated":"2026-06-22 15:30:20.000000000","message":"Done","commit_id":"de03c7c9f3a83c41ab32e0e4f4eaac0257fc15eb"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":63,"context_line":"  address-family l2vpn evpn"},{"line_number":64,"context_line":"    neighbor downlink activate"},{"line_number":65,"context_line":"    neighbor downlink route-reflector-client"},{"line_number":66,"context_line":"    neighbor uplink activate"},{"line_number":67,"context_line":"  exit-address-family"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"ip prefix-list only-host-prefixes permit 0.0.0.0/0 ge 32"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"3d03a1fa_29ec7c19","line":66,"updated":"2026-06-23 14:01:39.000000000","message":"The frr driver, BGP l2evpn address family adds these attributes:\nhttps://opendev.org/openstack/neutron/src/branch/master/neutron/agent/linux/evpn_router/frr/templates.py#L92-L97\n\nAlso, just making note. I have never experienced with frr `peer-group`. I always just referenced local interface directly, see my link above. But reading frr docs this should also work.","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"cf4bda3d93227c130bb5d7b7cbe023152efcb697","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  address-family l2vpn evpn"},{"line_number":64,"context_line":"    neighbor downlink activate"},{"line_number":65,"context_line":"    neighbor downlink route-reflector-client"},{"line_number":66,"context_line":"    neighbor uplink activate"},{"line_number":67,"context_line":"  exit-address-family"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"ip prefix-list only-host-prefixes permit 0.0.0.0/0 ge 32"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1705942b_f8f45c24","line":66,"in_reply_to":"3d03a1fa_29ec7c19","updated":"2026-06-24 07:03:48.000000000","message":"Done","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"}],"roles/spine/tasks/main.yml":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":151,"context_line":"  vars:"},{"line_number":152,"context_line":"    datapath_spine_ipv4: 172.31.1.1"},{"line_number":153,"context_line":"  block:"},{"line_number":154,"context_line":"    - name: Load VRF kernel module"},{"line_number":155,"context_line":"      ansible.builtin.shell: |"},{"line_number":156,"context_line":"        modprobe vrf"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    - name: Create VXLAN interface for EVPN VNI 1"},{"line_number":159,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"f8c1bb57_72a1a290","line":156,"range":{"start_line":154,"start_character":0,"end_line":156,"end_character":20},"updated":"2026-06-23 14:01:39.000000000","message":"Will this persist if node rebooted? On my experimental setup I had to make sure the vrf module persist with a task like this\n\n```\n- name: Persist vrf module load on boot\n  ansible.builtin.copy:\n    dest: /etc/modules-load.d/vrf.conf\n    content: |\n      vrf\n    mode: \"0644\"\n```","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"cf4bda3d93227c130bb5d7b7cbe023152efcb697","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  vars:"},{"line_number":152,"context_line":"    datapath_spine_ipv4: 172.31.1.1"},{"line_number":153,"context_line":"  block:"},{"line_number":154,"context_line":"    - name: Load VRF kernel module"},{"line_number":155,"context_line":"      ansible.builtin.shell: |"},{"line_number":156,"context_line":"        modprobe vrf"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    - name: Create VXLAN interface for EVPN VNI 1"},{"line_number":159,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"4a6c1b66_ada776fc","line":156,"range":{"start_line":154,"start_character":0,"end_line":156,"end_character":20},"in_reply_to":"f8c1bb57_72a1a290","updated":"2026-06-24 07:03:48.000000000","message":"Done","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    - name: Create VXLAN interface for EVPN VNI 1"},{"line_number":159,"context_line":"      ansible.builtin.shell: |"},{"line_number":160,"context_line":"        ip link add vxlan-1 type vxlan id 1 local {{ datapath_spine_ipv4 }} dstport {{ evpn_vxlan_port }} nolearning"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    - name: Create bridge for EVPN"},{"line_number":163,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"49bb30a1_8cea732b","line":160,"range":{"start_line":160,"start_character":39,"end_line":160,"end_character":43},"updated":"2026-06-23 14:01:39.000000000","message":"why not make VNI a variable which can default to 1? Then we can have control what vni gets setup by the job","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"cf4bda3d93227c130bb5d7b7cbe023152efcb697","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    - name: Create VXLAN interface for EVPN VNI 1"},{"line_number":159,"context_line":"      ansible.builtin.shell: |"},{"line_number":160,"context_line":"        ip link add vxlan-1 type vxlan id 1 local {{ datapath_spine_ipv4 }} dstport {{ evpn_vxlan_port }} nolearning"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    - name: Create bridge for EVPN"},{"line_number":163,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"89d8b4d4_8e2cd379","line":160,"range":{"start_line":160,"start_character":39,"end_line":160,"end_character":43},"in_reply_to":"49bb30a1_8cea732b","updated":"2026-06-24 07:03:48.000000000","message":"Done, but this is still temporary solution. We\u0027ll probably need to configure a set of VNIs on the test machine (the spine), if we are going to run multiple tests with it.","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"eef0b077131f7751f4ae88d30946b0de8a0c40ba","unresolved":true,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    - name: Attach VXLAN to bridge"},{"line_number":167,"context_line":"      ansible.builtin.shell: |"},{"line_number":168,"context_line":"        ip link set vxlan-1 master br-evpn"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    - name: Enable ARP/ND suppression on the VXLAN port"},{"line_number":171,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"e3bd5b54_15cf5704","line":168,"updated":"2026-06-23 14:01:39.000000000","message":"Don\u0027t you need to also need to master the bridge to vrf?\nE.g.\n`ip link set br-evpn master evpnvrf-1`","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"cf4bda3d93227c130bb5d7b7cbe023152efcb697","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    - name: Attach VXLAN to bridge"},{"line_number":167,"context_line":"      ansible.builtin.shell: |"},{"line_number":168,"context_line":"        ip link set vxlan-1 master br-evpn"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    - name: Enable ARP/ND suppression on the VXLAN port"},{"line_number":171,"context_line":"      ansible.builtin.shell: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"8f33a634_1c3a7312","line":168,"in_reply_to":"e3bd5b54_15cf5704","updated":"2026-06-24 07:03:48.000000000","message":"Done","commit_id":"aa9f58464dbb9021ccd69fd0565b19c2daf45cc5"}]}
