blob: 0b82accd5f3844d50ddab61f8545e88630bb0012 [file] [log] [blame]
/*
* Copyright (c) 2012, 2016-2017, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup fal_port_vlan FAL_PORT_VLAN
* @{
*/
#include "sw.h"
#include "fal_portvlan.h"
#include "hsl_api.h"
#include "adpt.h"
#include <linux/kernel.h>
#include <linux/module.h>
static sw_error_t
_fal_port_1qmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1qmode_t port_1qmode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_1qmode_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_1qmode_set(dev_id, port_id, port_1qmode);
return rv;
}
static sw_error_t
_fal_port_egvlanmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1q_egmode_t port_egvlanmode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_egvlanmode_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_egvlanmode_set(dev_id, port_id, port_egvlanmode);
return rv;
}
static sw_error_t
_fal_portvlan_member_add(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t mem_port_id)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_portvlan_member_add)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_portvlan_member_add(dev_id, port_id, mem_port_id);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->portvlan_member_add)
return SW_NOT_SUPPORTED;
rv = p_api->portvlan_member_add(dev_id, port_id, mem_port_id);
return rv;
}
static sw_error_t
_fal_portvlan_member_del(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t mem_port_id)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_portvlan_member_del)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_portvlan_member_del(dev_id, port_id, mem_port_id);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->portvlan_member_del)
return SW_NOT_SUPPORTED;
rv = p_api->portvlan_member_del(dev_id, port_id, mem_port_id);
return rv;
}
static sw_error_t
_fal_portvlan_member_update(a_uint32_t dev_id, fal_port_t port_id,
fal_pbmp_t mem_port_map)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_portvlan_member_update)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_portvlan_member_update(dev_id, port_id, mem_port_map);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->portvlan_member_update)
return SW_NOT_SUPPORTED;
rv = p_api->portvlan_member_update(dev_id, port_id, mem_port_map);
return rv;
}
static sw_error_t
_fal_port_default_vid_set(a_uint32_t dev_id, fal_port_t port_id, a_uint32_t vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_vid_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_vid_set(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_force_default_vid_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_force_default_vid_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_force_default_vid_set(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_force_portvlan_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_force_portvlan_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_force_portvlan_set(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_nestvlan_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_nestvlan_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_nestvlan_set(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_nestvlan_tpid_set(a_uint32_t dev_id, a_uint32_t tpid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->nestvlan_tpid_set)
return SW_NOT_SUPPORTED;
rv = p_api->nestvlan_tpid_set(dev_id, tpid);
return rv;
}
static sw_error_t
_fal_port_invlan_mode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_invlan_mode_t mode)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_invlan_mode_set)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_invlan_mode_set(dev_id, port_id, mode);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_invlan_mode_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_invlan_mode_set(dev_id, port_id, mode);
return rv;
}
static sw_error_t
_fal_port_tls_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_tls_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_tls_set(dev_id, port_id, enable);
return rv;
}
#ifndef IN_PORTVLAN_MINI
static sw_error_t
_fal_port_invlan_mode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_invlan_mode_t * mode)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_invlan_mode_get)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_invlan_mode_get(dev_id, port_id, mode);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_invlan_mode_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_invlan_mode_get(dev_id, port_id, mode);
return rv;
}
static sw_error_t
_fal_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t * tpid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->nestvlan_tpid_get)
return SW_NOT_SUPPORTED;
rv = p_api->nestvlan_tpid_get(dev_id, tpid);
return rv;
}
static sw_error_t
_fal_port_nestvlan_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_nestvlan_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_nestvlan_get(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_force_portvlan_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_force_portvlan_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_force_portvlan_get(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_force_default_vid_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_force_default_vid_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_force_default_vid_get(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_default_vid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_vid_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_vid_get(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_1qmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1qmode_t * pport_1qmode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_1qmode_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_1qmode_get(dev_id, port_id, pport_1qmode);
return rv;
}
static sw_error_t
_fal_port_egvlanmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1q_egmode_t * pport_egvlanmode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_egvlanmode_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_egvlanmode_get(dev_id, port_id, pport_egvlanmode);
return rv;
}
static sw_error_t
_fal_portvlan_member_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pbmp_t * mem_port_map)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_portvlan_member_get)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_portvlan_member_get(dev_id, port_id, mem_port_map);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->portvlan_member_get)
return SW_NOT_SUPPORTED;
rv = p_api->portvlan_member_get(dev_id, port_id, mem_port_map);
return rv;
}
static sw_error_t
_fal_port_tls_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_tls_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_tls_get(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_pri_propagation_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_pri_propagation_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_pri_propagation_set(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_pri_propagation_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_pri_propagation_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_pri_propagation_get(dev_id, port_id, enable);
return rv;
}
#endif
static sw_error_t
_fal_port_default_svid_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_svid_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_svid_set(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_default_cvid_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_cvid_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_cvid_set(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_vlan_propagation_set(a_uint32_t dev_id, fal_port_t port_id,
fal_vlan_propagation_mode_t mode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_propagation_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_propagation_set(dev_id, port_id, mode);
return rv;
}
#ifndef IN_PORTVLAN_MINI
static sw_error_t
_fal_port_default_cvid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_cvid_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_cvid_get(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_default_svid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_default_svid_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_default_svid_get(dev_id, port_id, vid);
return rv;
}
static sw_error_t
_fal_port_vlan_propagation_get(a_uint32_t dev_id, fal_port_t port_id,
fal_vlan_propagation_mode_t * mode)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_propagation_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_propagation_get(dev_id, port_id, mode);
return rv;
}
#endif
static sw_error_t
_fal_port_vlan_trans_add(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_vlan_trans_add)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_vlan_trans_add(dev_id, port_id, entry);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_trans_add)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_trans_add(dev_id, port_id, entry);
return rv;
}
#ifndef IN_PORTVLAN_MINI
static sw_error_t
_fal_port_vlan_trans_del(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_vlan_trans_del)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_vlan_trans_del(dev_id, port_id, entry);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_trans_del)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_trans_del(dev_id, port_id, entry);
return rv;
}
static sw_error_t
_fal_port_vlan_trans_get(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_vlan_trans_get)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_vlan_trans_get(dev_id, port_id, entry);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_trans_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_trans_get(dev_id, port_id, entry);
return rv;
}
#endif
static sw_error_t
_fal_qinq_mode_set(a_uint32_t dev_id, fal_qinq_mode_t mode)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_qinq_mode_set)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_qinq_mode_set(dev_id, mode);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->qinq_mode_set)
return SW_NOT_SUPPORTED;
rv = p_api->qinq_mode_set(dev_id, mode);
return rv;
}
#ifndef IN_PORTVLAN_MINI
static sw_error_t
_fal_qinq_mode_get(a_uint32_t dev_id, fal_qinq_mode_t * mode)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_qinq_mode_get)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_qinq_mode_get(dev_id, mode);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->qinq_mode_get)
return SW_NOT_SUPPORTED;
rv = p_api->qinq_mode_get(dev_id, mode);
return rv;
}
#endif
static sw_error_t
_fal_port_qinq_role_set(a_uint32_t dev_id, fal_port_t port_id, fal_qinq_port_role_t role)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_qinq_role_set)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_qinq_role_set(dev_id, port_id, role);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_qinq_role_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_qinq_role_set(dev_id, port_id, role);
return rv;
}
#ifndef IN_PORTVLAN_MINI
static sw_error_t
_fal_port_qinq_role_get(a_uint32_t dev_id, fal_port_t port_id, fal_qinq_port_role_t * role)
{
sw_error_t rv;
hsl_api_t *p_api;
adpt_api_t *p_adpt_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_qinq_role_get)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_qinq_role_get(dev_id, port_id, role);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_qinq_role_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_qinq_role_get(dev_id, port_id, role);
return rv;
}
static sw_error_t
_fal_port_vlan_trans_iterate(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * iterator, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
adpt_api_t *p_adpt_api;
hsl_api_t *p_api;
if((p_adpt_api = adpt_api_ptr_get(dev_id)) != NULL) {
if (NULL == p_adpt_api->adpt_port_vlan_trans_iterate)
return SW_NOT_SUPPORTED;
rv = p_adpt_api->adpt_port_vlan_trans_iterate(dev_id, port_id, iterator, entry);
return rv;
}
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vlan_trans_iterate)
return SW_NOT_SUPPORTED;
rv = p_api->port_vlan_trans_iterate(dev_id, port_id, iterator, entry);
return rv;
}
static sw_error_t
_fal_port_mac_vlan_xlt_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_mac_vlan_xlt_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_mac_vlan_xlt_set(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_port_mac_vlan_xlt_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_mac_vlan_xlt_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_mac_vlan_xlt_get(dev_id, port_id, enable);
return rv;
}
static sw_error_t
_fal_netisolate_set(a_uint32_t dev_id, a_uint32_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->netisolate_set)
return SW_NOT_SUPPORTED;
rv = p_api->netisolate_set(dev_id, enable);
return rv;
}
static sw_error_t
_fal_netisolate_get(a_uint32_t dev_id, a_uint32_t * enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->netisolate_get)
return SW_NOT_SUPPORTED;
rv = p_api->netisolate_get(dev_id, enable);
return rv;
}
static sw_error_t
_fal_eg_trans_filter_bypass_en_set(a_uint32_t dev_id, a_uint32_t enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->eg_trans_filter_bypass_en_set)
return SW_NOT_SUPPORTED;
rv = p_api->eg_trans_filter_bypass_en_set(dev_id, enable);
return rv;
}
static sw_error_t
_fal_eg_trans_filter_bypass_en_get(a_uint32_t dev_id, a_uint32_t* enable)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->eg_trans_filter_bypass_en_set)
return SW_NOT_SUPPORTED;
rv = p_api->eg_trans_filter_bypass_en_get(dev_id, enable);
return rv;
}
static sw_error_t
_fal_port_vrf_id_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vrf_id)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vrf_id_set)
return SW_NOT_SUPPORTED;
rv = p_api->port_vrf_id_set(dev_id, port_id, vrf_id);
return rv;
}
static sw_error_t
_fal_port_vrf_id_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vrf_id)
{
sw_error_t rv;
hsl_api_t *p_api;
SW_RTN_ON_NULL(p_api = hsl_api_ptr_get(dev_id));
if (NULL == p_api->port_vrf_id_get)
return SW_NOT_SUPPORTED;
rv = p_api->port_vrf_id_get(dev_id, port_id, vrf_id);
return rv;
}
#endif
/**
* @brief Set 802.1q work mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] port_1qmode 802.1q work mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_1qmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1qmode_t port_1qmode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_1qmode_set(dev_id, port_id, port_1qmode);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get 802.1q work mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] port_1qmode 802.1q work mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_1qmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1qmode_t * pport_1qmode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_1qmode_get(dev_id, port_id, pport_1qmode);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set packets transmitted out vlan tagged mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] port_egvlanmode packets transmitted out vlan tagged mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_egvlanmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1q_egmode_t port_egvlanmode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_egvlanmode_set(dev_id, port_id, port_egvlanmode);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get packets transmitted out vlan tagged mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] port_egvlanmode packets transmitted out vlan tagged mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_egvlanmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_1q_egmode_t * pport_egvlanmode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_egvlanmode_get(dev_id, port_id, pport_egvlanmode);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Add member of port based vlan on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] mem_port_id port member
* @return SW_OK or error code
*/
sw_error_t
fal_portvlan_member_add(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t mem_port_id)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_portvlan_member_add(dev_id, port_id, mem_port_id);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Delete member of port based vlan on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] mem_port_id port member
* @return SW_OK or error code
*/
sw_error_t
fal_portvlan_member_del(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t mem_port_id)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_portvlan_member_del(dev_id, port_id, mem_port_id);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Update member of port based vlan on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] mem_port_map port members
* @return SW_OK or error code
*/
sw_error_t
fal_portvlan_member_update(a_uint32_t dev_id, fal_port_t port_id,
fal_pbmp_t mem_port_map)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_portvlan_member_update(dev_id, port_id, mem_port_map);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get member of port based vlan on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] mem_port_map port members
* @return SW_OK or error code
*/
sw_error_t
fal_portvlan_member_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pbmp_t * mem_port_map)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_portvlan_member_get(dev_id, port_id, mem_port_map);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set default vlan id on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] vid default vlan id
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_vid_set(a_uint32_t dev_id, fal_port_t port_id, a_uint32_t vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_vid_set(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get default vlan id on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] vid default vlan id
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_vid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_vid_get(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set force default vlan id status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_force_default_vid_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_force_default_vid_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get force default vlan id status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_force_default_vid_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_force_default_vid_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set force port based vlan status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_force_portvlan_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_force_portvlan_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get force port based vlan status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_force_portvlan_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_force_portvlan_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set nest vlan feature status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_nestvlan_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_nestvlan_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get nest vlan feature status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_nestvlan_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_nestvlan_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set nest vlan tpid on a particular device.
* @param[in] dev_id device id
* @param[in] tpid tag protocol identification
* @return SW_OK or error code
*/
sw_error_t
fal_nestvlan_tpid_set(a_uint32_t dev_id, a_uint32_t tpid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_nestvlan_tpid_set(dev_id, tpid);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get nest vlan tpid on a particular device.
* @param[in] dev_id device id
* @param[out] tpid tag protocol identification
* @return SW_OK or error code
*/
sw_error_t
fal_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t * tpid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_nestvlan_tpid_get(dev_id, tpid);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set ingress vlan mode mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] mode ingress vlan mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_invlan_mode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_invlan_mode_t mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_invlan_mode_set(dev_id, port_id, mode);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get ingress vlan mode mode on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] mode ingress vlan mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_invlan_mode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_pt_invlan_mode_t * mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_invlan_mode_get(dev_id, port_id, mode);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set tls status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_tls_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_tls_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get tls status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_tls_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_tls_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Set priority propagation status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_pri_propagation_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_pri_propagation_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get priority propagation status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_port_pri_propagation_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_pri_propagation_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set default s-vid on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] vid s-vid
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_svid_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_svid_set(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get default s-vid on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] vid s-vid
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_svid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_svid_get(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set default c-vid on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] vid c-vid
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_cvid_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_cvid_set(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get default c-vid on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] vid c-vid
* @return SW_OK or error code
*/
sw_error_t
fal_port_default_cvid_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vid)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_default_cvid_get(dev_id, port_id, vid);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set vlan propagation status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] mode vlan propagation mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_propagation_set(a_uint32_t dev_id, fal_port_t port_id,
fal_vlan_propagation_mode_t mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_propagation_set(dev_id, port_id, mode);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get vlan propagation status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] mode vlan propagation mode
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_propagation_get(a_uint32_t dev_id, fal_port_t port_id,
fal_vlan_propagation_mode_t * mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_propagation_get(dev_id, port_id, mode);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Add a vlan translation entry to a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param entry vlan translation entry
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_trans_add(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_trans_add(dev_id, port_id, entry);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Delete a vlan translation entry from a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param entry vlan translation entry
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_trans_del(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_trans_del(dev_id, port_id, entry);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get a vlan translation entry from a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param entry vlan translation entry
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_trans_get(a_uint32_t dev_id, fal_port_t port_id, fal_vlan_trans_entry_t *entry)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_trans_get(dev_id, port_id, entry);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set switch qinq work mode on a particular device.
* @param[in] dev_id device id
* @param[in] mode qinq work mode
* @return SW_OK or error code
*/
sw_error_t
fal_qinq_mode_set(a_uint32_t dev_id, fal_qinq_mode_t mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_qinq_mode_set(dev_id, mode);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get switch qinq work mode on a particular device.
* @param[in] dev_id device id
* @param[out] mode qinq work mode
* @return SW_OK or error code
*/
sw_error_t
fal_qinq_mode_get(a_uint32_t dev_id, fal_qinq_mode_t * mode)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_qinq_mode_get(dev_id, mode);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @brief Set qinq role on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] role port role
* @return SW_OK or error code
*/
sw_error_t
fal_port_qinq_role_set(a_uint32_t dev_id, fal_port_t port_id, fal_qinq_port_role_t role)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_qinq_role_set(dev_id, port_id, role);
FAL_API_UNLOCK;
return rv;
}
#ifndef IN_PORTVLAN_MINI
/**
* @brief Get qinq role on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] role port role
* @return SW_OK or error code
*/
sw_error_t
fal_port_qinq_role_get(a_uint32_t dev_id, fal_port_t port_id, fal_qinq_port_role_t * role)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_qinq_role_get(dev_id, port_id, role);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Iterate all vlan translation entries from a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] iterator translation entry index if it's zero means get the first entry
* @param[out] iterator next valid translation entry index
* @param[out] entry vlan translation entry
* @return SW_OK or error code
*/
sw_error_t
fal_port_vlan_trans_iterate(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * iterator, fal_vlan_trans_entry_t * entry)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vlan_trans_iterate(dev_id, port_id, iterator, entry);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Set MAC_VLAN_XLT status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] role port role
* @return SW_OK or error code
*/
sw_error_t
fal_port_mac_vlan_xlt_set(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_mac_vlan_xlt_set(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get MAC_VLAN_XLT status on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] role port role
* @return SW_OK or error code
*/
sw_error_t
fal_port_mac_vlan_xlt_get(a_uint32_t dev_id, fal_port_t port_id,
a_bool_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_mac_vlan_xlt_get(dev_id, port_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Set net isolate function.
* @param[in] dev_id device id
* @param[in] enable tag protocol identification
* @return SW_OK or error code
*/
sw_error_t
fal_netisolate_set(a_uint32_t dev_id, a_uint32_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_netisolate_set(dev_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get net isolate status.
* @param[in] dev_id device id
* @param[out] enable tag protocol identification
* @return SW_OK or error code
*/
sw_error_t
fal_netisolate_get(a_uint32_t dev_id, a_uint32_t * enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_netisolate_get(dev_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Set egress translation filter bypass enable
* @param[in] dev_id device id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_eg_trans_filter_bypass_en_set(a_uint32_t dev_id, a_bool_t enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_eg_trans_filter_bypass_en_set(dev_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get egress translation filter bypass enable
* @param[in] dev_id device id
* @param[in] enable A_TRUE or A_FALSE
* @return SW_OK or error code
*/
sw_error_t
fal_eg_trans_filter_bypass_en_get(a_uint32_t dev_id, a_bool_t* enable)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_eg_trans_filter_bypass_en_get(dev_id, enable);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Set VRF id on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[in] vrf_id VRF id
* @return SW_OK or error code
*/
sw_error_t
fal_port_vrf_id_set(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t vrf_id)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vrf_id_set(dev_id, port_id, vrf_id);
FAL_API_UNLOCK;
return rv;
}
/**
* @brief Get VRF id on a particular port.
* @param[in] dev_id device id
* @param[in] port_id port id
* @param[out] vrf_id VRF id
* @return SW_OK or error code
*/
sw_error_t
fal_port_vrf_id_get(a_uint32_t dev_id, fal_port_t port_id,
a_uint32_t * vrf_id)
{
sw_error_t rv;
FAL_API_LOCK;
rv = _fal_port_vrf_id_get(dev_id, port_id, vrf_id);
FAL_API_UNLOCK;
return rv;
}
#endif
/**
* @}
*/
sw_error_t
_fal_global_qinq_mode_set(a_uint32_t dev_id, fal_global_qinq_mode_t *mode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_global_qinq_mode_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_global_qinq_mode_set(dev_id, mode);
return rv;
}
sw_error_t
_fal_global_qinq_mode_get(a_uint32_t dev_id, fal_global_qinq_mode_t *mode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_global_qinq_mode_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_global_qinq_mode_get(dev_id, mode);
return rv;
}
sw_error_t
_fal_port_qinq_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_qinq_role_t *mode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_qinq_mode_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_qinq_mode_set(dev_id, port_id, mode);
return rv;
}
sw_error_t
_fal_port_qinq_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_qinq_role_t *mode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_qinq_mode_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_qinq_mode_get(dev_id, port_id, mode);
return rv;
}
sw_error_t
_fal_ingress_tpid_set(a_uint32_t dev_id, fal_tpid_t *tpid)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_tpid_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_tpid_set(dev_id, tpid);
return rv;
}
sw_error_t
_fal_ingress_tpid_get(a_uint32_t dev_id, fal_tpid_t * tpid)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_tpid_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_tpid_get(dev_id, tpid);
return rv;
}
sw_error_t
_fal_egress_tpid_set(a_uint32_t dev_id, fal_tpid_t *tpid)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_egress_tpid_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_egress_tpid_set(dev_id, tpid);
return rv;
}
sw_error_t
_fal_egress_tpid_get(a_uint32_t dev_id, fal_tpid_t * tpid)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_egress_tpid_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_egress_tpid_get(dev_id, tpid);
return rv;
}
sw_error_t
_fal_port_ingress_vlan_filter_set(a_uint32_t dev_id, fal_port_t port_id, fal_ingress_vlan_filter_t *filter)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_ingress_vlan_filter_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_ingress_vlan_filter_set(dev_id, port_id, filter);
return rv;
}
sw_error_t
_fal_port_ingress_vlan_filter_get(a_uint32_t dev_id, fal_port_t port_id, fal_ingress_vlan_filter_t * filter)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_ingress_vlan_filter_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_ingress_vlan_filter_get(dev_id, port_id, filter);
return rv;
}
sw_error_t
_fal_port_default_vlantag_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_port_default_vid_enable_t *default_vid_en, fal_port_vlan_tag_t *default_tag)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_default_vlantag_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_default_vlantag_set(dev_id, port_id, direction, default_vid_en, default_tag);
return rv;
}
sw_error_t
_fal_port_default_vlantag_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_port_default_vid_enable_t *default_vid_en, fal_port_vlan_tag_t *default_tag)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_default_vlantag_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_default_vlantag_get(dev_id, port_id, direction, default_vid_en, default_tag);
return rv;
}
sw_error_t
_fal_port_tag_propagation_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlantag_propagation_t *prop)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_tag_propagation_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_tag_propagation_set(dev_id, port_id, direction, prop);
return rv;
}
sw_error_t
_fal_port_tag_propagation_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlantag_propagation_t *prop)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_tag_propagation_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_tag_propagation_get(dev_id, port_id, direction, prop);
return rv;
}
sw_error_t
_fal_port_vlantag_egmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_vlantag_egress_mode_t *port_egvlanmode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlantag_egmode_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlantag_egmode_set(dev_id, port_id, port_egvlanmode);
return rv;
}
sw_error_t
_fal_port_vlantag_egmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_vlantag_egress_mode_t *port_egvlanmode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlantag_egmode_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlantag_egmode_get(dev_id, port_id, port_egvlanmode);
return rv;
}
sw_error_t
_fal_port_vlan_xlt_miss_cmd_set(a_uint32_t dev_id, fal_port_t port_id,
fal_fwd_cmd_t cmd)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_xlt_miss_cmd_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_xlt_miss_cmd_set(dev_id, port_id, cmd);
return rv;
}
sw_error_t
_fal_port_vlan_xlt_miss_cmd_get(a_uint32_t dev_id, fal_port_t port_id,
fal_fwd_cmd_t *cmd)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_xlt_miss_cmd_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_xlt_miss_cmd_get(dev_id, port_id, cmd);
return rv;
}
sw_error_t
_fal_port_vsi_egmode_set(a_uint32_t dev_id, a_uint32_t vsi, a_uint32_t port_id, fal_pt_1q_egmode_t egmode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vsi_egmode_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vsi_egmode_set(dev_id, vsi, port_id, egmode);
return rv;
}
sw_error_t
_fal_port_vsi_egmode_get(a_uint32_t dev_id, a_uint32_t vsi, a_uint32_t port_id, fal_pt_1q_egmode_t * egmode)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vsi_egmode_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vsi_egmode_get(dev_id, vsi, port_id, egmode);
return rv;
}
sw_error_t
_fal_port_vlantag_vsi_egmode_enable(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlantag_vsi_egmode_enable_set)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlantag_vsi_egmode_enable_set(dev_id, port_id, enable);
return rv;
}
sw_error_t
_fal_port_vlantag_vsi_egmode_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlantag_vsi_egmode_enable_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlantag_vsi_egmode_enable_get(dev_id, port_id, enable);
return rv;
}
sw_error_t
_fal_port_vlan_trans_adv_add(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_trans_adv_add)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_trans_adv_add(dev_id, port_id, direction, rule, action);
return rv;
}
sw_error_t
_fal_port_vlan_trans_adv_del(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_trans_adv_del)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_trans_adv_del(dev_id, port_id, direction, rule, action);
return rv;
}
sw_error_t
_fal_port_vlan_trans_adv_getfirst(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_trans_adv_getfirst)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_trans_adv_getfirst(dev_id, port_id, direction, rule, action);
return rv;
}
sw_error_t
_fal_port_vlan_trans_adv_getnext(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_trans_adv_getnext)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_trans_adv_getnext(dev_id, port_id, direction, rule, action);
return rv;
}
sw_error_t
_fal_port_vlan_counter_get(a_uint32_t dev_id, a_uint32_t cnt_index, fal_port_vlan_counter_t * counter)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_counter_get)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_counter_get(dev_id, cnt_index, counter);
return rv;
}
sw_error_t
_fal_port_vlan_counter_cleanup(a_uint32_t dev_id, a_uint32_t cnt_index)
{
sw_error_t rv;
adpt_api_t *p_api;
SW_RTN_ON_NULL(p_api = adpt_api_ptr_get(dev_id));
if (NULL == p_api->adpt_port_vlan_counter_cleanup)
return SW_NOT_SUPPORTED;
rv = p_api->adpt_port_vlan_counter_cleanup(dev_id, cnt_index);
return rv;
}
sw_error_t
fal_global_qinq_mode_set(a_uint32_t dev_id, fal_global_qinq_mode_t *mode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_global_qinq_mode_set(dev_id, mode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_global_qinq_mode_get(a_uint32_t dev_id, fal_global_qinq_mode_t *mode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_global_qinq_mode_get(dev_id, mode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_qinq_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_qinq_role_t *mode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_qinq_mode_set(dev_id, port_id, mode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_qinq_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_qinq_role_t *mode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_qinq_mode_get(dev_id, port_id, mode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_ingress_tpid_set(a_uint32_t dev_id, fal_tpid_t *tpid)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_ingress_tpid_set(dev_id, tpid);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_ingress_tpid_get(a_uint32_t dev_id, fal_tpid_t * tpid)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_ingress_tpid_get(dev_id, tpid);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_egress_tpid_set(a_uint32_t dev_id, fal_tpid_t *tpid)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_egress_tpid_set(dev_id, tpid);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_egress_tpid_get(a_uint32_t dev_id, fal_tpid_t * tpid)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_egress_tpid_get(dev_id, tpid);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_ingress_vlan_filter_set(a_uint32_t dev_id, fal_port_t port_id, fal_ingress_vlan_filter_t *filter)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_ingress_vlan_filter_set(dev_id, port_id, filter);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_ingress_vlan_filter_get(a_uint32_t dev_id, fal_port_t port_id, fal_ingress_vlan_filter_t * filter)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_ingress_vlan_filter_get(dev_id, port_id, filter);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_default_vlantag_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_port_default_vid_enable_t *default_vid_en, fal_port_vlan_tag_t *default_tag)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_default_vlantag_set(dev_id, port_id, direction, default_vid_en, default_tag);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_default_vlantag_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_port_default_vid_enable_t *default_vid_en, fal_port_vlan_tag_t *default_tag)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_default_vlantag_get(dev_id, port_id, direction, default_vid_en, default_tag);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_tag_propagation_set(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlantag_propagation_t *prop)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_tag_propagation_set(dev_id, port_id, direction, prop);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_tag_propagation_get(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlantag_propagation_t *prop)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_tag_propagation_get(dev_id, port_id, direction, prop);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlantag_egmode_set(a_uint32_t dev_id, fal_port_t port_id,
fal_vlantag_egress_mode_t *port_egvlanmode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlantag_egmode_set(dev_id, port_id, port_egvlanmode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlantag_egmode_get(a_uint32_t dev_id, fal_port_t port_id,
fal_vlantag_egress_mode_t *port_egvlanmode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlantag_egmode_get(dev_id, port_id, port_egvlanmode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_xlt_miss_cmd_set(a_uint32_t dev_id, fal_port_t port_id,
fal_fwd_cmd_t cmd)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_xlt_miss_cmd_set(dev_id, port_id, cmd);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_xlt_miss_cmd_get(a_uint32_t dev_id, fal_port_t port_id,
fal_fwd_cmd_t *cmd)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_xlt_miss_cmd_get(dev_id, port_id, cmd);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vsi_egmode_set(a_uint32_t dev_id, a_uint32_t vsi, a_uint32_t port_id, fal_pt_1q_egmode_t egmode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vsi_egmode_set(dev_id, vsi, port_id, egmode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vsi_egmode_get(a_uint32_t dev_id, a_uint32_t vsi, a_uint32_t port_id, fal_pt_1q_egmode_t * egmode)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vsi_egmode_get(dev_id, vsi, port_id, egmode);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlantag_vsi_egmode_enable(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlantag_vsi_egmode_enable(dev_id, port_id, enable);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlantag_vsi_egmode_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlantag_vsi_egmode_status_get(dev_id, port_id, enable);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_trans_adv_add(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_trans_adv_add(dev_id, port_id, direction, rule, action);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_trans_adv_del(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_trans_adv_del(dev_id, port_id, direction, rule, action);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_trans_adv_getfirst(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_trans_adv_getfirst(dev_id, port_id, direction, rule, action);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_trans_adv_getnext(a_uint32_t dev_id, fal_port_t port_id, fal_port_vlan_direction_t direction,
fal_vlan_trans_adv_rule_t * rule, fal_vlan_trans_adv_action_t * action)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_trans_adv_getnext(dev_id, port_id, direction, rule, action);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_counter_get(a_uint32_t dev_id, a_uint32_t cnt_index, fal_port_vlan_counter_t * counter)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_counter_get(dev_id, cnt_index, counter);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
sw_error_t
fal_port_vlan_counter_cleanup(a_uint32_t dev_id, a_uint32_t cnt_index)
{
sw_error_t rv = SW_OK;
FAL_PORTVLAN_API_LOCK;
rv = _fal_port_vlan_counter_cleanup(dev_id, cnt_index);
FAL_PORTVLAN_API_UNLOCK;
return rv;
}
EXPORT_SYMBOL(fal_port_invlan_mode_set);
EXPORT_SYMBOL(fal_global_qinq_mode_set);
EXPORT_SYMBOL(fal_global_qinq_mode_get);
EXPORT_SYMBOL(fal_port_qinq_mode_set);
EXPORT_SYMBOL(fal_port_qinq_mode_get);
EXPORT_SYMBOL(fal_ingress_tpid_set);
EXPORT_SYMBOL(fal_ingress_tpid_get);
EXPORT_SYMBOL(fal_egress_tpid_set);
EXPORT_SYMBOL(fal_egress_tpid_get);
EXPORT_SYMBOL(fal_port_ingress_vlan_filter_set);
EXPORT_SYMBOL(fal_port_ingress_vlan_filter_get);
EXPORT_SYMBOL(fal_port_default_vlantag_set);
EXPORT_SYMBOL(fal_port_default_vlantag_get);
EXPORT_SYMBOL(fal_port_tag_propagation_set);
EXPORT_SYMBOL(fal_port_tag_propagation_get);
EXPORT_SYMBOL(fal_port_vlantag_egmode_set);
EXPORT_SYMBOL(fal_port_vlantag_egmode_get);
EXPORT_SYMBOL(fal_port_vlan_xlt_miss_cmd_set);
EXPORT_SYMBOL(fal_port_vlan_xlt_miss_cmd_get);
EXPORT_SYMBOL(fal_port_vsi_egmode_set);
EXPORT_SYMBOL(fal_port_vsi_egmode_get);
EXPORT_SYMBOL(fal_port_vlantag_vsi_egmode_enable);
EXPORT_SYMBOL(fal_port_vlantag_vsi_egmode_status_get);
EXPORT_SYMBOL(fal_port_vlan_trans_adv_add);
EXPORT_SYMBOL(fal_port_vlan_trans_adv_del);
EXPORT_SYMBOL(fal_port_vlan_trans_adv_getfirst);
EXPORT_SYMBOL(fal_port_vlan_trans_adv_getnext);
EXPORT_SYMBOL(fal_port_vlan_counter_get);
EXPORT_SYMBOL(fal_port_vlan_counter_cleanup);
EXPORT_SYMBOL(fal_portvlan_member_add);
EXPORT_SYMBOL(fal_portvlan_member_del);
EXPORT_SYMBOL(fal_portvlan_member_update);
EXPORT_SYMBOL(fal_qinq_mode_set);
EXPORT_SYMBOL(fal_port_qinq_role_set);
EXPORT_SYMBOL(fal_port_vlan_trans_add);
#ifndef IN_PORTVLAN_MINI
EXPORT_SYMBOL(fal_qinq_mode_get);
EXPORT_SYMBOL(fal_port_qinq_role_get);
EXPORT_SYMBOL(fal_port_vlan_trans_iterate);
EXPORT_SYMBOL(fal_port_vlan_trans_del);
EXPORT_SYMBOL(fal_port_vlan_trans_get);
EXPORT_SYMBOL(fal_portvlan_member_get);
EXPORT_SYMBOL(fal_port_invlan_mode_get);
#endif