void nas_acl_action_t::set_action_ifindex (const nas_acl_common_data_list_t& data_list) { auto ifindex = data_list.at(0).ifindex; _ifindex_list.push_back (ifindex); if (nas_acl_utl_is_ifidx_type_lag (ifindex)) { nas::ndi_obj_id_table_t tmp_ndi_oid_tbl; if (dn_nas_lag_get_ndi_ids (ifindex, &tmp_ndi_oid_tbl) != STD_ERR_OK) { throw nas::base_exception {NAS_ACL_E_ATTR_VAL, __PRETTY_FUNCTION__, "Failed to get LAG NDI IDs"}; } auto oid = static_cast <nas_obj_id_t> (ifindex); _nas2ndi_oid_tbl [oid] = std::move (tmp_ndi_oid_tbl); _a_info.values_type = NDI_ACL_ACTION_OBJ_ID; } else { // Convert to NPU and port interface_ctrl_t intf_ctrl {}; nas_acl_utl_ifidx_to_ndi_port (ifindex, &intf_ctrl); _a_info.values_type = NDI_ACL_ACTION_PORT; _a_info.values.ndi_port.npu_id = intf_ctrl.npu_id; _a_info.values.ndi_port.npu_port = intf_ctrl.port_id; } }
t_std_error nas_mac_lag_obj_id_get (hal_ifindex_t if_index, ndi_obj_id_t& obj_id) { nas::ndi_obj_id_table_t tmp_ndi_oid_tbl; if (dn_nas_lag_get_ndi_ids (if_index, &tmp_ndi_oid_tbl) != STD_ERR_OK) { NAS_MAC_LOG(ERR, ev_log_s_MAJOR, "Lag object get failed for %d", if_index); return STD_ERR(MAC,NEXIST,0); } /* TODO - Handle multiple NPU scenerio */ obj_id = tmp_ndi_oid_tbl[0]; return STD_ERR_OK; }