Skip to content

[VRF] Router interface SRC mac is not derived from VRF. #1833

@rajkumar38

Description

@rajkumar38
  1. By default when src mac not explicitly set on router-interface, src mac should be derived from associated VRF and not from port.

  2. When new VRF object is created and its src mac is modified, the change is not propogated to associated router-interfaces.
    Router interface still points to old switch mac address.

Since, orchagent sets the router-interface mac during create, expect to handle vrf mac change.

root@str-marvell-acs-1:/var/log# show vrf
VRF    Interfaces
-----  ---------------
Vrf1   PortChannel0001
       PortChannel0002
       Vlan1000
       Loopback0

root@str-marvell-acs-1:/var/log# redis-cli -n 1 hgetall "ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE:oid:0x600000000062c"
 1) "SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID"
 2) "oid:0x30000000005ee"
 3) "SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS"
 4) "8E:63:14:54:39:E9"
 5) "SAI_ROUTER_INTERFACE_ATTR_TYPE"
 6) "SAI_ROUTER_INTERFACE_TYPE_VLAN"
 7) "SAI_ROUTER_INTERFACE_ATTR_VLAN_ID"
 8) "oid:0x260000000005fc"
 9) "SAI_ROUTER_INTERFACE_ATTR_MTU"
10) "9100"


root@str-marvell-acs-1:/tmp# cat vrf_attr_src_mac.json
{
    "VRF": {
        "Vrf1": {
            "src_mac": "00:12:34:56:78:99"
        }
    }
}

root@str-marvell-acs-1:/tmp# config load -y vrf_attr_src_mac.json

root@str-marvell-acs-1:/var/log# redis-cli -n 1 hgetall "ASIC_STATE:SAI_OBJECT_TYPE_VIRTUAL_ROUTER:oid:0x30000000005ee"
1) "NULL"
2) "NULL"
3) "SAI_VIRTUAL_ROUTER_ATTR_SRC_MAC_ADDRESS"
4) "00:12:34:56:78:99"

root@str-marvell-acs-1:/var/log# redis-cli -n 1 hgetall "ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE:oid:0x600000000062c"
 1) "SAI_ROUTER_INTERFACE_ATTR_VIRTUAL_ROUTER_ID"
 2) "oid:0x30000000005ee"
 3) "SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS"
 4) "8E:63:14:54:39:E9"
 5) "SAI_ROUTER_INTERFACE_ATTR_TYPE"
 6) "SAI_ROUTER_INTERFACE_TYPE_VLAN"
 7) "SAI_ROUTER_INTERFACE_ATTR_VLAN_ID"
 8) "oid:0x260000000005fc"
 9) "SAI_ROUTER_INTERFACE_ATTR_MTU"
10) "9100"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions