diff --git a/orchagent/intfsorch.cpp b/orchagent/intfsorch.cpp index b6b27e9af54..1abe3496f79 100644 --- a/orchagent/intfsorch.cpp +++ b/orchagent/intfsorch.cpp @@ -223,7 +223,7 @@ bool IntfsOrch::addRouterIntfs(Port &port) break; case Port::VLAN: attr.id = SAI_ROUTER_INTERFACE_ATTR_VLAN_ID; - attr.value.u16 = port.m_vlan_id; + attr.value.oid = port.m_vlan_oid; break; default: SWSS_LOG_ERROR("Unsupported port type: %d", port.m_type); diff --git a/orchagent/port.h b/orchagent/port.h index 62f1a76bd36..ffec8df0ca6 100644 --- a/orchagent/port.h +++ b/orchagent/port.h @@ -54,6 +54,7 @@ class Port int m_index = 0; // PHY_PORT: index int m_ifindex = 0; sai_object_id_t m_port_id = 0; + sai_object_id_t m_vlan_oid = 0; sai_vlan_id_t m_vlan_id = 0; sai_vlan_id_t m_port_vlan_id = DEFAULT_PORT_VLAN_ID; // Port VLAN ID sai_object_id_t m_vlan_member_id = 0; diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 1f7c4cfee07..fe3fae68714 100644 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -1014,7 +1014,6 @@ bool PortsOrch::addVlan(string vlan_alias) { SWSS_LOG_ENTER(); - // TODO: how to use vlan_oid?? sai_object_id_t vlan_oid; sai_vlan_id_t vlan_id = stoi(vlan_alias.substr(4)); @@ -1031,17 +1030,8 @@ bool PortsOrch::addVlan(string vlan_alias) SWSS_LOG_NOTICE("Create an empty VLAN %s vid:%hu", vlan_alias.c_str(), vlan_id); -/* - // create vlan rif(s) - sai_attribute_t rif_attr_list[2]; - rif_attr_list[0].id = SAI_ROUTER_INTERFACE_ATTR_VLAN_ID; - rif_attr_list[0].value = vlan_id; - rif_attr_list[1].id = SAI_ROUTER_INTERFACE_ATTR_SRC_MAC_ADDRESS; - rif_attr_list[1].value = mac; - sai_create_rif_fn(&rif1, 2, rif_list); -*/ - Port vlan(vlan_alias, Port::VLAN); + vlan.m_vlan_oid = vlan_oid; vlan.m_vlan_id = vlan_id; vlan.m_members = set(); m_portList[vlan_alias] = vlan; @@ -1060,7 +1050,7 @@ bool PortsOrch::removeVlan(Port vlan) return false; } - sai_status_t status = sai_vlan_api->remove_vlan(vlan.m_vlan_id); + sai_status_t status = sai_vlan_api->remove_vlan(vlan.m_vlan_oid); if (status != SAI_STATUS_SUCCESS) { SWSS_LOG_ERROR("Failed to remove VLAN %s vid:%hu", vlan.m_alias.c_str(), vlan.m_vlan_id); @@ -1082,7 +1072,7 @@ bool PortsOrch::addVlanMember(Port vlan, Port port, string& tagging_mode) vector attrs; attr.id = SAI_VLAN_MEMBER_ATTR_VLAN_ID; - attr.value.u16 = vlan.m_vlan_id; + attr.value.oid = vlan.m_vlan_oid; attrs.push_back(attr); attr.id = SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID; @@ -1110,6 +1100,7 @@ bool PortsOrch::addVlanMember(Port vlan, Port port, string& tagging_mode) SWSS_LOG_NOTICE("Add member %s to VLAN %s vid:%hu pid%lx", port.m_alias.c_str(), vlan.m_alias.c_str(), vlan.m_vlan_id, port.m_port_id); +#if 0 // Set port bind mode sai_attribute_t port_attr; port_attr.id = SAI_PORT_ATTR_BIND_MODE; @@ -1121,6 +1112,7 @@ bool PortsOrch::addVlanMember(Port vlan, Port port, string& tagging_mode) port.m_port_id, status); return false; } +#endif port.m_vlan_id = vlan.m_vlan_id; port.m_port_vlan_id = vlan.m_vlan_id;