#ifndef RTK_RG_XDSL_EXTAPI_H
#define RTK_RG_XDSL_EXTAPI_H



//#include <rtk_rg_internal.h>
#include <rtk_rg_define.h>
#include <rtk_rg_struct.h>
#include <rtk_rg_debug.h>

#define CONFIG_APOLLO 0 //for sourceInsign check apollo flag correct
#undef CONFIG_APOLLO

#ifndef CONFIG_XDSL_RG_DIAGSHELL
#define APOLLOMP_CHIP_ID 	2	//for temp compiler pass FIXME plz
#define CHIP_REV_ID_C	 	2 	//for temp compiler pass FIXME plz
#define CHIP_REV_ID_0		2	//for temp compiler pass FIXME plz
#define CHIP_REV_ID_B		2	//for temp compiler pass FIXME plz
#endif

#define RTK_RG_FWDENGINE_HOUSE_KEEP_SECOND 1


//my function
int32 rtk_hwEnable(int32 enable);
int32 rtk_pppoe_getIdx(int32 sessionId);
void _rtk_rg_refresh_tcp_longTimeout(int32 longTimeout);
void _rtk_rg_refresh_udp_longTimeout(int32 longTimeout);
int32 _rtk_syncLutTb4way_FormHw2Sw(unsigned char *mac);
int32 RTK_MULTICAST_ADD(rtk_rg_table_v4multicast_t *mcEntry);



// multiple definition 
#define rtk_svlan_tpidEntry_get _rtk_svlan_tpidEntry_get
#define rtk_svlan_servicePort_get _rtk_svlan_servicePort_get
//#define rtk_vlan_portIgrFilterEnable_set _rtk_vlan_portIgrFilterEnable_set
#define rtk_qos_1pRemarkEnable_get _rtk_qos_1pRemarkEnable_get
#define rtk_l2_addr_get _rtk_l2_addr_get


/* xdsl proc api*/
int32 rtk_rg_xdsl_init( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_lanInterface_add( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_wanInterface_add( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_staticInfo_set( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_pppoeClientInfoBeforeDial_set( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_pppoeClientInfoAfterDial_set( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_dhcpRequest_set( struct file *filp, const char *buff,unsigned long len, void *data );
int32 rtk_rg_xdsl_dhcpClientInfo_set( struct file *filp, const char *buff,unsigned long len, void *data );

/* acl */
int32 rtk_rg_xdsl_acl_cmd( struct file *filp, const char *buff,unsigned long len, void *data );
int _dump_xdsl_acl(void);

/* xdsl */
int32 rtk_rg_fwdEngine_test(void);
void rtk_rg_xdsl_test_napt(void);
int32 rtk_rg_xdsl_cvlan( struct file *filp, const char *buff,unsigned long len, void *data );

/* qos */
int32 rtk_rg_xdsl_qos( struct file *filp, const char *buff,unsigned long len, void *data );

/* Tables Access*/
//L2 table
int32 rtk_l2_addr_add(rtk_l2_ucastAddr_t *pL2Addr);
int32 rtk_l2_addr_del(rtk_l2_ucastAddr_t *pL2Addr);
int32 rtk_l2_nextValidEntry_get(int32	*pScanIdx,rtk_l2_addr_table_t     *pL2Entry);
int32 rtk_l2_addr_get(rtk_l2_ucastAddr_t *pL2Addr);
//nexthop table
int32 rtk_l34_nexthopTable_set(uint32 idx, rtk_l34_nexthop_entry_t *entry);
//netif table
int32 rtk_l34_netifTable_set(uint32 idx, rtk_l34_netif_entry_t *entry);
//routing table
int32 rtk_l34_routingTable_set(uint32 idx, rtk_l34_routing_entry_t *entry);
//extip table
int32 rtk_l34_extIntIPTable_set(uint32 idx, rtk_l34_ext_intip_entry_t *entry);
//arp tabke
int32 rtk_l34_arpTable_set(uint32 idx, rtk_l34_arp_entry_t *entry);
//vlan table
int32 rtk_vlan_init(void);
int32 rtk_vlan_create(rtk_vlan_t vid);
int32 rtk_vlan_port_set(rtk_vlan_t vid,rtk_portmask_t *pMember_portmask, rtk_portmask_t *pUntag_portmask);
int32 rtk_vlan_fid_set(rtk_vlan_t vid, rtk_fid_t fid);
int32 rtk_vlan_extPort_set(rtk_vlan_t vid,rtk_portmask_t *pExt_portmask);
int32 rtk_vlan_destroy(rtk_vlan_t vid);
//pvid
int32 rtk_vlan_portPvid_set(rtk_port_t port, uint32 pvid);
int32 rtk_vlan_extPortPvid_set(uint32 extPort, uint32 pvid);
//NAPT table
int32 rtk_l34_naptInboundTable_set(int8 forced, uint32 idx,rtk_l34_naptInbound_entry_t *entry);
int32 rtk_l34_naptOutboundTable_set(int8 forced, uint32 idx,rtk_l34_naptOutbound_entry_t *entry);

/* NIC Function*/
int re8686_send_with_txInfo_and_mask(struct sk_buff *skb, struct tx_info* ptxInfo, int ring_num, struct tx_info* ptxInfoMask);



#define FIXEME_FUNCITON 1//for sourceInsight 
#if FIXEME_FUNCITON
int32 rtk_classify_portRange_set(rtk_classify_rangeCheck_l4Port_t *pRangeEntry);
int32 rtk_classify_ipRange_set(rtk_classify_rangeCheck_ip_t *pRangeEntry);
int32 rtk_classify_cfPri2Dscp_set(rtk_pri_t pri, rtk_dscp_t dscp);

int32 rtk_l34_init(void);
int32 rtk_l34_hsdState_set(rtk_enable_t hsdState);
int32 rtk_l34_bindingAction_get(rtk_l34_bindType_t bindType, rtk_l34_bindAct_t *bindAction);
int32 rtk_l34_globalState_get(rtk_l34_globalStateType_t stateType,rtk_enable_t *pState);
int32 rtk_l34_globalState_set(rtk_l34_globalStateType_t stateType,rtk_enable_t state);
int32 rtk_l34_hwL4TrfWrkTbl_Clear(rtk_l34_l4_trf_t l4TrfTable);
int32 rtk_l34_wanTypeTable_set(uint32 idx, rtk_wanType_entry_t *wanTypeEntry);
int32 rtk_l34_pppoeTable_set(uint32 idx, rtk_l34_pppoe_entry_t *pppEntry);
int32 rtk_l34_ipv6RoutingTable_set(uint32 idx, rtk_ipv6Routing_entry_t *ipv6RoutEntry);
int32 rtk_l34_ipv6NeighborTable_set(uint32 idx,rtk_ipv6Neighbor_entry_t *ipv6NeighborEntry);
int32 rtk_l34_wanRoutMode_set(rtk_l34_wanRouteMode_t wanRouteMode);
int32 rtk_l34_lookupMode_set(rtk_l34_lookupMode_t lookupMode);
int32 rtk_l34_hsabMode_set(rtk_l34_hsba_mode_t hsabMode);
int32 rtk_l34_nexthopTable_get(uint32 idx, rtk_l34_nexthop_entry_t *nextHopEntry);
int32 rtk_l34_ipmcTransTable_set(uint32 idx, rtk_l34_ipmcTrans_entry_t *ipmcEntry);

int32 rtk_l2_init(void);
int32 rtk_l2_ipmcMode_get(rtk_l2_ipmcMode_t *pMode);
int32 rtk_l2_portLimitLearningCnt_set(rtk_port_t port, uint32 macCnt);
int32 rtk_l2_portLimitLearningCntAction_set(rtk_port_t port, rtk_l2_limitLearnCntAction_t learningAction);
int32 rtk_l2_ipMcastAddr_add(rtk_l2_ipMcastAddr_t *pIpmcastAddr);
int32 rtk_l2_ipMcastAddr_del(rtk_l2_ipMcastAddr_t *pIpmcastAddr);
int32 rtk_l2_mcastAddr_add(rtk_l2_mcastAddr_t *pMcastAddr);
int32 rtk_l2_mcastAddr_del(rtk_l2_mcastAddr_t *pMcastAddr);
int32 rtk_l2_ipmcGroup_add(ipaddr_t gip, rtk_portmask_t *pPortmask);
int32 rtk_l2_ipmcGroup_del(ipaddr_t gip);
int32 rtk_l2_portLookupMissAction_set(rtk_port_t port, rtk_l2_lookupMissType_t type, rtk_action_t action);
int32 rtk_l2_addr_delAll(uint32 includeStatic);
int32 rtk_l2_lookupMissFloodPortMask_set(rtk_l2_lookupMissType_t type, rtk_portmask_t *pFlood_portmask);
int32 rtk_l2_ipmcMode_set(rtk_l2_ipmcMode_t mode);
int32 rtk_l2_ipmcGroupLookupMissHash_set(rtk_l2_ipmcHashOp_t ipmcHash);
int32 rtk_l2_lookupMissAction_set(rtk_l2_lookupMissType_t type, rtk_action_t action);
int32 rtk_l2_srcPortEgrFilterMask_set(rtk_portmask_t *pFilter_portmask);
int32 rtk_l2_extPortEgrFilterMask_set(rtk_portmask_t *pExt_portmask);
int32 rtk_l2_nextValidAddr_get(int32 *pScanIdx,rtk_l2_ucastAddr_t  *pL2UcastData);

int32 rtk_intr_linkdownStatus_clear(void);
//int32 rtk_intr_imr_set(rtk_intr_type_t intr, rtk_enable_t enable);
//int32 rtk_irq_isr_register(rtk_intr_type_t intr, void (*fun)(void));

int32 rtk_trap_portIgmpMldCtrlPktAction_set(rtk_port_t port, rtk_trap_igmpMld_type_t igmpMldType, rtk_action_t action);


int32 rtk_svlan_unmatchAction_set(rtk_svlan_action_t action, rtk_vlan_t svid);
int32 rtk_svlan_create(rtk_vlan_t svid);
int32 rtk_svlan_servicePort_set(rtk_port_t port, rtk_enable_t enable);
int32 _rtk_svlan_servicePort_get(rtk_port_t port, rtk_enable_t *pEnable);
int32 rtk_svlan_dmacVidSelState_set(rtk_port_t port, rtk_enable_t enable);
int32 _rtk_svlan_tpidEntry_get(uint32 svlanIndex, uint32 *pSvlanTagId); 
int32 rtk_svlan_tpidEntry_set(uint32 svlan_index, uint32 svlan_tag_id);
int32 rtk_svlan_memberPort_set(rtk_vlan_t svid, rtk_portmask_t *pSvlanPortmask, rtk_portmask_t *pSvlanUntagPortmask);
int32 rtk_svlan_fidEnable_set(rtk_vlan_t svid, rtk_enable_t enable);
int32 rtk_svlan_fid_set(rtk_vlan_t svid, rtk_fid_t fid);
int32 rtk_svlan_untagAction_set(rtk_svlan_action_t action, rtk_vlan_t svid);
int32 rtk_svlan_sp2cUnmatchCtagging_set(rtk_enable_t state);
int32 rtk_svlan_dmacVidSelForcedState_set(rtk_enable_t enable);
int32 rtk_svlan_deiKeepState_set(rtk_enable_t enable);

int32 _rtk_vlan_portIgrFilterEnable_set(rtk_port_t port, rtk_enable_t enable);
int32 rtk_vlan_vlanFunctionEnable_set(rtk_enable_t enable);
int32 rtk_vlan_protoGroup_set(uint32 protoGroupIdx,rtk_vlan_protoGroup_t *pProtoGroup);
int32 rtk_vlan_portProtoVlan_set(rtk_port_t port,uint32 protoGroupIdx,rtk_vlan_protoVlanCfg_t *pVlanCfg);
int32 rtk_vlan_extPortPvid_get(uint32 extPort, uint32 *pPvid);
int32 rtk_vlan_portPvid_get(rtk_port_t port, uint32 *pPvid);

int32 _rtk_qos_1pRemarkEnable_get(rtk_port_t port, rtk_enable_t *pEnable);
int32 rtk_qos_1pPriRemapGroup_set(uint32 grpIdx,rtk_pri_t dot1pPri,rtk_pri_t intPri,uint32 dp);
int32 rtk_qos_dscpPriRemapGroup_set(uint32 grpIdx,uint32 dscp,rtk_pri_t intPri,uint32 dp);
int32 rtk_qos_portPri_set(rtk_port_t port, rtk_pri_t intPri);
int32 rtk_qos_priSelGroup_set(uint32 grpIdx, rtk_qos_priSelWeight_t *pWeightOfPriSel);
int32 rtk_qos_fwd2CpuPriRemap_set(rtk_pri_t intPri,rtk_pri_t rempPri);
int32 rtk_qos_portPriMap_set(rtk_port_t port, uint32 group);
int32 rtk_qos_schedulingQueue_set(rtk_port_t port, rtk_qos_queue_weights_t *pQweights);
int32 rtk_qos_schedulingQueue_get(rtk_port_t port, rtk_qos_queue_weights_t *pQweights);
int32 rtk_qos_priMap_get(uint32 group, rtk_qos_pri2queue_t *pPri2qid);
int32 rtk_qos_priMap_set(uint32 group, rtk_qos_pri2queue_t *pPri2qid);
int32 rtk_qos_priSelGroup_get(uint32 grpIdx, rtk_qos_priSelWeight_t *pWeightOfPriSel);
int32 rtk_qos_dscpPriRemapGroup_get(uint32 grpIdx,uint32 dscp,rtk_pri_t *pIntPri,uint32 *pDp);
int32 rtk_qos_1pPriRemapGroup_get(uint32 grpIdx,rtk_pri_t dot1pPri,rtk_pri_t *pIntPri,uint32 *pDp);
int32 rtk_qos_dscpRemarkEnable_set(rtk_port_t port, rtk_enable_t enable);
int32 rtk_qos_portDscpRemarkSrcSel_set(rtk_port_t port, rtk_qos_dscpRmkSrc_t type);
int32 rtk_qos_dscpRemarkEnable_get(rtk_port_t port, rtk_enable_t *pEnable);
int32 rtk_qos_portDscpRemarkSrcSel_get(rtk_port_t port, rtk_qos_dscpRmkSrc_t *pType);
int32 rtk_qos_dscpRemarkGroup_set(uint32 grpIdx,rtk_pri_t intPri,uint32 dp,uint32 dscp);
int32 rtk_qos_dscpRemarkGroup_get(uint32 grpIdx,rtk_pri_t intPri,uint32 dp,uint32 *pDscp);
int32 rtk_qos_dscp2DscpRemarkGroup_set(uint32 grpIdx,uint32 dscp, uint32 rmkDscp);
int32 rtk_qos_dscp2DscpRemarkGroup_get(uint32 grpIdx, uint32 dscp, uint32 *pDscp);
int32 rtk_qos_1pRemarkEnable_set(rtk_port_t port, rtk_enable_t enable);
int32 rtk_qos_1pRemarkGroup_set(uint32 grpIdx,rtk_pri_t intPri,uint32 dp,rtk_pri_t dot1pPri);
int32 rtk_qos_1pRemarkGroup_get(uint32 grpIdx,rtk_pri_t intPri,uint32 dp,rtk_pri_t *pDot1pPri);
int32 rtk_qos_portPri_get(rtk_port_t port, rtk_pri_t *pIntPri);

/* acl asic dirver api*/
int32 rtk_acl_template_get(rtk_acl_template_t *aclTemplate);
int32 rtk_acl_igrRuleEntry_del(uint32 index);
int32 rtk_acl_igrRuleEntry_add(rtk_acl_ingress_entry_t *pAclRule);
int32 rtk_acl_template_set(rtk_acl_template_t *aclTemplate);
int32 rtk_acl_igrRuleField_add(rtk_acl_ingress_entry_t *pAclRule, rtk_acl_field_t *pAclField);
int32 rtk_acl_igrRuleEntry_get(rtk_acl_ingress_entry_t *pAclRule);
int32 rtk_acl_igrRuleMode_set(rtk_acl_igr_rule_mode_t mode);
int32 rtk_acl_igrState_set(rtk_port_t port, rtk_enable_t state);
int32 rtk_acl_igrUnmatchAction_set(rtk_port_t port, rtk_filter_unmatch_action_type_t action);
int32 rtk_acl_fieldSelect_set(rtk_acl_field_entry_t *pFieldEntry);
int32 rtk_acl_portRange_set(rtk_acl_rangeCheck_l4Port_t *pRangeEntry);
int32 rtk_acl_ipRange_set(rtk_acl_rangeCheck_ip_t *pRangeEntry);
int32 rtk_acl_portRange_get(rtk_acl_rangeCheck_l4Port_t *pRangeEntry);
int32 rtk_acl_ipRange_get(rtk_acl_rangeCheck_ip_t *pRangeEntry);

/* cf asic dirver api*/
int32 rtk_classify_cfgEntry_del(uint32 entryIdx);
int32 rtk_classify_cfgEntry_add(rtk_classify_cfg_t *pClassifyCfg);
int32 rtk_classify_cfgEntry_get(rtk_classify_cfg_t *pClassifyCfg);
int32 rtk_classify_cfSel_set(rtk_port_t port, rtk_classify_cf_sel_t cfSel);
int32 rtk_classify_unmatchAction_set(rtk_classify_unmatch_action_t action);
int32 rtk_classify_portRange_get(rtk_classify_rangeCheck_l4Port_t *pRangeEntry);
int32 rtk_classify_ipRange_get(rtk_classify_rangeCheck_ip_t *pRangeEntry);
int32 rtk_classify_cfPri2Dscp_get(rtk_pri_t pri, rtk_dscp_t *pDscp);
int32 rtk_classify_field_add(rtk_classify_cfg_t *pClassifyEntry, rtk_classify_field_t *pClassifyField);

int32 rtk_port_isolationEntryExt_set(rtk_port_isoConfig_t mode, rtk_port_t port, rtk_portmask_t *pPortmask, rtk_portmask_t *pExtPortmask);
int32 rtk_port_isolationEntry_set(rtk_port_isoConfig_t mode, rtk_port_t port, rtk_portmask_t *pPortmask, rtk_portmask_t *pExtPortmask);
int32 rtk_port_isolationCtagPktConfig_set(rtk_port_isoConfig_t mode);
int32 rtk_port_isolationL34PktConfig_set(rtk_port_isoConfig_t mode);
int32 rtk_port_isolationIpmcLeaky_set(rtk_port_t port, rtk_enable_t enable);
int32 rtk_port_macForceAbility_get(rtk_port_t port,rtk_port_macAbility_t *pMacAbility);
int32 rtk_port_macForceAbility_set(rtk_port_t port,rtk_port_macAbility_t macAbility);
int32 rtk_port_macForceAbilityState_set(rtk_port_t port,rtk_enable_t state);
int32 rtk_port_phyReg_get(rtk_port_t port,uint32 page,rtk_port_phy_reg_t  reg,uint32 *pData);
int32 rtk_port_phyReg_set(rtk_port_t port,uint32 page,rtk_port_phy_reg_t  reg,uint32 data);
int32 rtk_port_phyAutoNegoAbility_set(rtk_port_t port,rtk_port_phy_ability_t  *pAbility);
int32 rtk_port_phyAutoNegoAbility_get(rtk_port_t port,rtk_port_phy_ability_t  *pAbility);
int32 rtk_port_macForceAbilityState_get(rtk_port_t port,rtk_enable_t *pState);
int32 rtk_port_link_get(rtk_port_t port, rtk_port_linkStatus_t *pLinkStatus);
int32 rtk_port_speedDuplex_get(rtk_port_t port,rtk_port_speed_t *pSpeed,rtk_port_duplex_t *pDuplex);

int32 rtk_mirror_portBased_set(rtk_port_t mirroringPort, rtk_portmask_t *pMirroredRxPortmask, rtk_portmask_t *pMirroredTxPortmask);
int32 rtk_mirror_portBased_get(rtk_port_t *pMirroringPort, rtk_portmask_t *pMirroredRxPortmask, rtk_portmask_t *pMirroredTxPortmask);

int32 rtk_ponmac_queue_get(rtk_ponmac_queue_t *pQueue, rtk_ponmac_queueCfg_t *pQueueCfg);
int32 rtk_ponmac_queue_add(rtk_ponmac_queue_t *pQueue, rtk_ponmac_queueCfg_t *pQueueCfg);

int32 rtk_rate_shareMeterBucket_set(uint32 index, uint32 bucketSize);
int32 rtk_rate_portEgrBandwidthCtrlRate_set(rtk_port_t port, uint32 rate);
int32 rtk_rate_portIgrBandwidthCtrlRate_set(rtk_port_t port, uint32 rate);
int32 rtk_rate_portEgrBandwidthCtrlRate_get(rtk_port_t port, uint32 *pRate);
int32 rtk_rate_portIgrBandwidthCtrlRate_get(rtk_port_t port, uint32 *pRate);
int32 rtk_rate_stormControlEnable_get(rtk_rate_storm_group_ctrl_t  *stormCtrl);
int32 rtk_rate_stormControlEnable_set(rtk_rate_storm_group_ctrl_t  *stormCtrl);
int32 rtk_rate_stormControlPortEnable_set(rtk_port_t port,rtk_rate_storm_group_t  stormType,rtk_enable_t enable);
int32 rtk_rate_stormControlMeterIdx_set(rtk_port_t port,rtk_rate_storm_group_t  stormType,uint32 index);
int32 rtk_rate_shareMeter_set(uint32 index, uint32 rate, rtk_enable_t ifgInclude);
int32 rtk_rate_shareMeter_get(uint32 index, uint32 *pRate , rtk_enable_t *pIfgInclude);
int32 rtk_rate_egrBandwidthCtrlIncludeIfg_set(rtk_enable_t ifgInclude);

int32 rtk_sec_portAttackPreventState_set(rtk_port_t port, rtk_enable_t enable);
int32 rtk_sec_portAttackPreventState_get(rtk_port_t port, rtk_enable_t *pEnable);
int32 rtk_sec_attackPrevent_set(rtk_sec_attackType_t attackType,rtk_action_t action);
int32 rtk_sec_attackPrevent_get(rtk_sec_attackType_t attackType,rtk_action_t *pAction);
int32 rtk_sec_attackFloodThresh_set(rtk_sec_attackFloodType_t type, uint32 floodThresh);
int32 rtk_sec_attackFloodThresh_get(rtk_sec_attackFloodType_t type, uint32 *pFloodThresh);


int32 rtk_switch_version_get(uint32 *pChipId, uint32 *pRev, uint32 *pSubtype);
int32 rtk_switch_phyPortId_get(rtk_switch_port_name_t portName, int32 *pPortId);
int32 rtk_init_without_pon(void);
int32 rtk_stat_port_getAll(rtk_port_t port, rtk_stat_port_cntr_t *pPortCntrs);
int32 rtk_stat_port_reset(rtk_port_t port);


int intr_bcaster_notifier_cb_register(intrBcasterNotifier_t     *pRegNotifier);
int re8670_rx_skb (struct re_private *cp, struct sk_buff *skb, struct rx_info *pRxInfo);
struct sk_buff *re8670_getAlloc(unsigned int size);




#endif //FIXEME_FUNCITON

#define NOT_SUPPORT_FUNCTION 1 //for sourceInsight 
#if NOT_SUPPORT_FUNCTION
//=====================NOT_SUPPORT function===============================//
/* bind liteRome function (not support)*/
rtk_rg_fwdEngineReturn_t _rtk_rg_bindingRuleCheck(rtk_rg_pktHdr_t *pPktHdr, int *wanGroupIdx);
int32 _rtk_rg_updatingVlanBind(int wanIdx,int v6wanTypeIdx);
int32 _rtk_rg_addBindFromPortmask(unsigned int pmsk, unsigned int expmsk, int intfIdx, int wantypeIdx, int v6WantypeIdx);
int32 _rtk_rg_updateBindWanIntf(rtk_rg_wanIntfConf_t *wanintf);
int32 _rtk_rg_updateNoneBindingPortmask(uint32 wanPmsk);
void _rtk_rg_deletingPortBindFromInterface(int intfIdx);
int _rtk_rg_portBindingByProtocal_change( struct file *filp, const char *buff,unsigned long len, void *data );
int _rtk_rg_portBindingByProtocal_state(char *page, char **start, off_t off, int count, int *eof, void *data);
int32 _rtk_rg_updateBindOtherWanPortBasedVID(rtk_rg_wanIntfConf_t *otherWanIntf);
/* asic bind function*/
int32 rtk_l34_bindingAction_set(rtk_l34_bindType_t bindType, rtk_l34_bindAct_t bindAction);
int32 rtk_l34_bindingTable_set(uint32 idx,rtk_binding_entry_t *bindEntry); 

int32 rtk_vlan_priorityEnable_set(rtk_vlan_t vid, rtk_enable_t enable);
int32 rtk_vlan_priority_set(rtk_vlan_t vid, rtk_pri_t priority);
int32 rtk_vlan_fidMode_set(rtk_vlan_t vid, rtk_fidMode_t mode);
#endif //NOT_SUPPORT_FUNCTION




#endif  //RTK_RG_XDSL_EXTAPI_H