/*
@func ret_t | rtl8370_setAsicLedSerialEnable | Turn on/off Led serial mode
@parm uint32 | enable | LED serial configuration.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_PORT_ID | Invalid port number.
@rvalue RT_ERR_INPUT | Invalid input value.
@comm
    The API can turn on/off led of serial mode.
 */
ret_t rtl8370_setAsicLedSerialEnable(uint32 enable)
{
    ret_t retVal;

    if (enable > 1)
        return RT_ERR_FAILED;

    if (enable == 1)
    {
        /*Enable serial CLK mode*/
        if((retVal = rtl8370_setAsicRegBit(RTL8370_REG_SCAN0_LED_IO_EN,RTL8370_LED_SERI_CLK_EN_OFFSET, 1))!=  RT_ERR_OK)
		    return retVal;
        /*Enable serial DATA mode*/
        if((retVal = rtl8370_setAsicRegBit(RTL8370_REG_SCAN0_LED_IO_EN,RTL8370_LED_SERI_DATA_EN_OFFSET, 1))!=  RT_ERR_OK)
		    return retVal;

    }
    else
    {
        /*Disable serial CLK mode*/
        if((retVal = rtl8370_setAsicRegBit(RTL8370_REG_SCAN0_LED_IO_EN,RTL8370_LED_SERI_CLK_EN_OFFSET, 0))!=  RT_ERR_OK)
		    return retVal;
        /*Disable serial DATA mode*/
        if((retVal = rtl8370_setAsicRegBit(RTL8370_REG_SCAN0_LED_IO_EN,RTL8370_LED_SERI_DATA_EN_OFFSET, 0))!=  RT_ERR_OK)
		    return retVal;

    }

    return RT_ERR_OK;
}
Пример #2
0
/*
@func ret_t | rtl8370_setAsicRrcpV2Trap8051 | Set trap to 8051 setting enable/disable.
@parm uint32 | trap | 0: disable/1: enable.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set trap RRCPv2 frame to 8051 enable/disable
    Trap to RRCP frame to 8051 setting. If this bit is set, ASIC will
    not handled the received RRCP frame.
*/
ret_t rtl8370_setAsicRrcpV2Trap8051(uint32 trap)
{
    ret_t retVal;

    if(trap > 1)
        return RT_ERR_INPUT;

    retVal = rtl8370_setAsicRegBit(RTL8370_RRCP_CTRL0_REG, RTL8370_RRCP_TRAP_8051_OFFSET, trap);    
    if(retVal != RT_ERR_OK)
		return retVal;

    retVal = rtl8370_setAsicRegBit(RTL8370_OLD_RRCP_CTRL, RTL8370_RRCP_TRAP_8051_OFFSET, trap);

	return retVal;
}
/*
@func ret_t  | rtl8370_setAsic1xMBOpdirConfig | Set 802.1x mac-based operational direction configuration
@parm uint32 | opdir | Operation direction 1: IN, 0:BOTH
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@comm
    The API can update the mac-based operational direction register content.
*/
ret_t rtl8370_setAsic1xMBOpdirConfig(uint32 opdir)
{
    if(opdir > 1)
        return RT_ERR_ENABLE;

    return rtl8370_setAsicRegBit(RTL8370_DOT1X_CFG_REG, RTL8370_DOT1X_MAC_OPDIR_OFFSET, opdir);
}
Пример #4
0
/*
@func ret_t | rtl8370_setAsicLutIpMulticastLookup | Set Lut IP multicast lookup function.
@parm uint32 | enabled | Lut IP multicast checking function 1: enabled, 0: disabled. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable input.
@common
    ASIC will auto learn and write L2 look up entry. Auto learning L2 look up  table contained DMAC and source port information only. System supports L2 entry
    with IP multicast DIP/SIP to forward IP multicasting frame as user desired. If this function is enabled, then system will be looked up L2 IP multicast entry to 
    forward IP multicast frame directly without flooding. The L2 IP multicast forwarding path can be as port mask and not as same as auto learn L2 enrty with source 
    port information only. Both IP_MULT and Static fields of LUT must be wrote by software and these fields of auto learn entries will be 0 by ASIC.    
    
*/
ret_t rtl8370_setAsicLutIpMulticastLookup(uint32 enabled)
{
    if(enabled > 1)
        return RT_ERR_ENABLE; 

    return rtl8370_setAsicRegBit(RTL8370_REG_LUT_CFG, RTL8370_IPMCAST_LOOKUP_OFFSET, enabled);
}
Пример #5
0
/*
@func ret_t | rtl8370_setAsicRldpEnable | Set RLDP function handled by ASIC or 8051.
@parm uint32 | enable | 1: enabled 8051, 0: disabled 8051 (RLDP is handled by ASIC).
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set  RLDP_8051_ENABLE
    If RLDP_8051_ENABLE is set, RLDP is handled by 8051. Otherwise, 
    ASIC will handled RLDP. 
*/
ret_t rtl8370_setAsicRldpEnable8051(uint32 enable)
{
    if(enable > 1)
        return RT_ERR_INPUT;

    return rtl8370_setAsicRegBit(RTL8370_RLDP_CTRL0_REG, RTL8370_RLDP_8051_ENABLE_OFFSET, enable);
}
Пример #6
0
/*
@func ret_t | rtl8370_setAsicRldpIndicatorSource | Set buzzer and LED source when detecting a loop.
@parm uint32 | enable | 0: ASIC, 1: 8051
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set the buzzer and LED source.
    Buzzer and LED source can be from ASIC or 8051. RLDP_INDICATOR_SOURCE
    decides the source
*/
ret_t rtl8370_setAsicRldpIndicatorSource(uint32 src)
{
    if(src > 1)
        return RT_ERR_INPUT;

    return rtl8370_setAsicRegBit(RTL8370_RLDP_CTRL0_REG, RTL8370_RLDP_INDICATOR_SOURCE_OFFSET, src);
}
Пример #7
0
/*
@func ret_t | rtl8370_setAsicRldpCompareRandomNumber | Set RLDP_COMP_ID.
@parm uint32 | enable | 1: enabled comparing random number, 0: disabled comparing random number.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set RLDP_COMP_ID
    If RLDP_COMP_ID is set, ASIC will compare the random number field and
    seed field of RLDP frame with those of ASIC to recognize whether a RLDP
    frame is sent by itself. If RLDP_COMP_ID is 0, ASIC only compare the seed
    field
*/
ret_t rtl8370_setAsicRldpCompareRandomNumber(uint32 enable)
{
    if(enable > 1)
        return RT_ERR_INPUT;

    return rtl8370_setAsicRegBit(RTL8370_RLDP_CTRL0_REG, RTL8370_RLDP_COMP_ID_OFFSET, enable);
}
Пример #8
0
/*
@func int32 | rtl8370_setAsicGreenEthernet | Set green ethernet function.
@parm uint32 | green | Green feature function usage 1:enable 0:disable.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@comm
 	The API can set Green Ethernet function to reduce power consumption. While green feature is enabled, ASIC will automatic
 detect the cable length and then select different power mode for best performance with minimums power consumption. Link down
 ports will enter power savining mode in 10 seconds after the cable disconnected if power saving function is enabled.
*/
ret_t rtl8370_setAsicGreenEthernet(uint32 green)
{
    if (green > 1)
        return RT_ERR_INPUT;

	return rtl8370_setAsicRegBit(RTL8370_REG_PHY_AD,6,green);
}
/*
@func ret_t | rtl8370_setAsicPortEgressRateIfg | Set per-port egress rate calculate include/exclude IFG
@parm uint32 | ifg | 1:include IFG 0:exclude IFG
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    The API can set egress rate with IFG or not.
 */
ret_t rtl8370_setAsicPortEgressRateIfg(uint32 ifg)
{
    if(ifg > 1)
        return RT_ERR_INPUT;

    return rtl8370_setAsicRegBit(RTL8370_REG_SCHEDULE_WFQ_CTRL, RTL8370_WFQ_IFG_OFFSET, ifg);
}
Пример #10
0
/*
@func ret_t | rtl8370_setAsicShareMeter | Set meter configuration
@parm uint32 | index | Shared meter index (0-63) of 64 shared meter index
@parm uint32 | rate | 17-bits rate of share meter, unit is 8Kpbs
@parm uint32 | ifg | Rate's calculation including IFG 1:include 0:exclude 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_INPUT | Invalid input parameter
@rvalue RT_ERR_RATE | Invalid rate
@rvalue RT_ERR_FILTER_METER_ID | Invalid meter
@comm
    The API can set shared meter rate and ifg include for each meter. Rate unit is 8Kbps.    
 */
ret_t rtl8370_setAsicShareMeter(uint32 index, uint32 rate ,uint32 ifg)
{
    ret_t retVal;

    if(index > RTL8370_METERMAX)
        return RT_ERR_FILTER_METER_ID;

    if(rate > RTL8370_QOS_GRANULARTY_MAX)
        return RT_ERR_RATE;
    
    if(ifg > 1)
        return RT_ERR_INPUT;

    /*17-bits Rate*/
    retVal = rtl8370_setAsicReg(RTL8370_METER_RATE_REG(index), (rate & 0xFFFF));
    if(retVal != RT_ERR_OK)
        return retVal;

    retVal = rtl8370_setAsicReg(RTL8370_METER_RATE_REG(index) + 1, ((rate & 0x10000) >> 16));
    if(retVal != RT_ERR_OK)
        return retVal;

    /*IFG*/
    return rtl8370_setAsicRegBit(RTL8370_METER_IFG_CTRL_REG(index), RTL8370_METER_IFG_OFFSET(index), ifg);
}
Пример #11
0
/*
@func ret_t | rtl8370_setAsicMeterState | Clear shared meter status.
@parm uint32 | index | Shared meter index (0-63) of 64 shared meter index
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_FILTER_METER_ID | Invalid meter
@rvalue RT_ERR_FAILED | Invalid parameter.
@comm
    If rate is over rate*8Kbps of a meter and exceed bit of meter is set, software can write 1 to clear related exceed bit.
 */
ret_t rtl8370_setAsicMeterState(uint32 index)
{
    if(index > RTL8370_METERMAX)
        return RT_ERR_FILTER_METER_ID;

    return rtl8370_setAsicRegBit(RTL8370_METER_OVERRATE_INDICATOR_REG(index), RTL8370_METER_EXCEED_OFFSET(index), 1);
}
/*
@func ret_t  | rtl8370_setAsic1xGVOpdir | Set 802.1x guest vlan talk to auth. DA
@parm uint32 | enabled | 0:disable 1:enable
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_DOT1X_GVLANTALK | Invalid operation direction input.
@comm
    The API can update the 802.1x guest vlan talk to auth. DA content.
*/
ret_t rtl8370_setAsic1xGVOpdir(uint32 enabled)
{
    if(enabled > 1)
        return RT_ERR_DOT1X_GVLANTALK;
    
    return rtl8370_setAsicRegBit(RTL8370_DOT1X_CFG_REG, RTL8370_DOT1X_GVOPDIR_OFFSET, enabled);
}
Пример #13
0
/*
@func ret_t | rtl8370_setAsicEeelldpInterrupt8051 | Set interrupt to 8051/not interrupt to 8051 while receiving a eeelldp.
@parm uint32 | interrupt | 1: interrupt, 0: do not interrupt.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set the enabling of interrupting to 8051 when switch receives a EEELLDP packet.
    If EEELLDP function is enabled, upon receiving an eeelldp frame,
    ASIC will interrupt to 8051
*/
ret_t rtl8370_setAsicEeelldpInterrupt8051(uint32 interrupt_en)
{
    if (interrupt_en > 1)
        return RT_ERR_INPUT;
    
    return rtl8370_setAsicRegBit(RTL8370_EEELLDP_CTRL0_REG, RTL8370_EEELLDP_INT_8051_OFFSET, interrupt_en);
}
Пример #14
0
/*
@func ret_t | rtl8370_setAsicPortEnableAll | Set ALL ports enable.
@parm uint32 |enable | enable all ports.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_FAILED | Invalid parameter.
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
  This API can set all ports enable.  
 */
ret_t rtl8370_setAsicPortEnableAll(uint32 enable)
{
    if(enable >= 2)
        return RT_ERR_INPUT;

    return rtl8370_setAsicRegBit(RTL8370_REG_PHY_AD, RTL8370_PHY_AD_DUMMY_1_OFFSET, !enable);
}
/*
@func ret_t | rtl8370_setAsicVlanFilter | Configure enable CVLAN filtering function
@parm uint32 | enabled | CVLAN filtering function 1: enabled, 0: disabled. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable parameter.
@comm
     The API can set CVLAN both egress/ingress filtering enable function.
*/
ret_t rtl8370_setAsicVlanFilter(uint32 enabled)
{
    if ((enabled != 0) && (enabled != 1))
        return RT_ERR_ENABLE; 
	
    return rtl8370_setAsicRegBit(RTL8370_VLAN_FILTERING_REG, RTL8370_VLAN_FILTERING_OFFSET, enabled);
}
Пример #16
0
/*
@func ret_t | rtl8370_setAsicAcl | Set rule comparison result inversion / no inversion.
@parm uint32 | index | ACL rule index (0-63) of 64 ACL rules.
@parm uint32 | not | 1: inverse, 0: don't inverse.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_FILTER_ENTRYIDX | Invalid ACL rule index (0-63).
@comm
    The API can set not bit of ACL rules
    If the not bit of a rule is set, the comparison result will be inversed.
*/
ret_t rtl8370_setAsicAclNot(uint32 index, uint32 not)
{
    if(index > RTL8370_ACLRULEMAX)
        return RT_ERR_FILTER_ENTRYIDX;
    
    return rtl8370_setAsicRegBit(RTL8370_ACL_ACTION_CTRL_REG(index), RTL8370_ACL_OP_NOT_OFFSET(index), not);
}
Пример #17
0
/*
@func ret_t | rtl8370_setAsicAclUnmatchedPermit | Set port acl function unmatched permit action.
@parm uint32 | port | Physical port number (0~15).
@parm uint32 | enabled | 1: Enable, 0: Disable.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_PORT_ID | Invalid port number.
@comm
    The API can set per-port ACL unmatched action. (permit or drop)
*/
ret_t rtl8370_setAsicAclUnmatchedPermit(uint32 port, uint32 enabled)
{
    if(port > RTL8370_PORTIDMAX)
        return RT_ERR_PORT_ID;

    return rtl8370_setAsicRegBit(RTL8370_ACL_UNMATCH_PERMIT_REG,port, enabled);
}
Пример #18
0
/*
@func ret_t | rtl8370_setAsicPortMirrorRxFunction | Enable the mirror function on RX of the mirrored port. 
@parm uint32 | enabled | 1: enabled, 0: disabled. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable input.  
@comm
    If the API is setted to enabled, the RX of mirrored port will be mirrorred to 
    the current monitor port.
*/
ret_t rtl8370_setAsicPortMirrorRxFunction(uint32 enabled)
{
    if(enabled > 1)
        return RT_ERR_ENABLE;
    
    return rtl8370_setAsicRegBit(RTL8370_MIRROR_CTRL_REG, RTL8370_MIRROR_RX_OFFSET, enabled);
}
Пример #19
0
/*
@func ret_t | rtl8370_setAsicAcl | Set port acl function enable/disable.
@parm uint32 | port | Physical port number (0~15).
@parm uint32 | enabled | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_PORT_ID | Invalid port number.
@comm
    The API can set per-port ACL enable function
*/
ret_t rtl8370_setAsicAcl(uint32 port, uint32 enabled)
{
    if(port > RTL8370_PORTIDMAX)
        return RT_ERR_PORT_ID;

    return rtl8370_setAsicRegBit(RTL8370_ACL_ENABLE_REG,port, enabled);
}
/*
@func ret_t | rtl8370_setAsicSvlanIngressUnmatch | Configure enable trap received unmatched Stag frame to CPU from unplink port.
@parm uint32 | enabled | Trap received unmatched Stag frame to CPU 1: enabled, 0: disabled. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable parameter.
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
     The API can set trapping function in uplink port while receiving unmatched Stag frame.
*/
ret_t rtl8370_setAsicSvlanIngressUnmatch(uint32 enabled)
{
    if((enabled != 0) && (enabled != 1))
        return RT_ERR_ENABLE; 

    return rtl8370_setAsicRegBit(RTL8370_REG_SVLAN_CFG, RTL8370_VS_UNMAT_OFFSET, enabled);
}
Пример #21
0
/*
@func ret_t | rtl8370_setAsicCputagEnable | Set cpu tag function enable/disable.
@parm uint32 | enable | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_ENABLE | Invalid enable/disable input.
@comm
    The API can set CPU TAG enable function.

    If CPU tag function is disabled, CPU tag will not be added to frame
    forwarded to CPU port, and all ports cannot parse CPU tag.
*/
ret_t rtl8370_setAsicCputagEnable(uint32 enable)
{
    if(enable > 1)
        return RT_ERR_ENABLE;
    
    return rtl8370_setAsicRegBit(RTL8370_CPU_CTRL_REG, RTL8370_CPU_EN_OFFSET, enable);
}
/*
@func ret_t | rtl8370_setAsicSvlanEgressUnassign | Configure unplink stream without egress SVID action.
@parm uint32 | enabled | 1:Trap egress unassigned frames to CPU, 0: Use SVLAN setup in VS_CPSVIDX as egress SVID. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable parameter.
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
     The API can set trapping function in uplink port while the egress frame is unassigned.
*/
ret_t rtl8370_setAsicSvlanEgressUnassign(uint32 enabled)
{
    if((enabled != 0) && (enabled != 1))
        return RT_ERR_ENABLE; 

    return rtl8370_setAsicRegBit(RTL8370_REG_SVLAN_CFG, RTL8370_VS_UIFSEG_OFFSET, enabled);
}
Пример #23
0
/*
@func ret_t | rtl8370_setAsicTrunkingFlood | Set port trunking flood function
@parm uint32 | enabled | Port trunking flooding function 0:disable 1:enable
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable parameter.
@comm
    The API can set port trunking unknown flooding function. While this function was be set, then ASIC will send flooding packets to trunking 
    group logic 1st port and known packets will be send to left available trunking ports. This function will be enabled while 4 ports of trunking
    group are all aggregatted.
 */
ret_t rtl8370_setAsicTrunkingFlood(uint32 enabled)
{
    if ((enabled != 0) && (enabled != 1))
        return RT_ERR_ENABLE; 

    return rtl8370_setAsicRegBit(RTL8370_REG_PORT_TRUNK_CTRL, RTL8370_PORT_TRUNK_FLOOD_OFFSET, enabled);
}
Пример #24
0
/*
@func ret_t | rtl8370_setAsicEeelldpTrapCpu | Set trap eeelldp to CPU/not trap to CPU.
@parm uint32 | trap | 1: trap, 0: do not trap.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set the enabling of trap EEELLDP packet to CPU function.
    If EEELLDP function is enabled, upon receiving an eeelldp frame,
    ASIC will trap the eeelldp frame to CPU
*/
ret_t rtl8370_setAsicEeelldpTrapCpu(uint32 trap)
{
    if (trap > 1)
        return RT_ERR_INPUT;
    
    return rtl8370_setAsicRegBit(RTL8370_EEELLDP_CTRL0_REG, RTL8370_EEELLDP_TRAP_CPU_OFFSET, trap);
}
Пример #25
0
/*
@func ret_t | rtl8370_setAsicEeelldp | Set eeelldp function enable/disable.
@parm uint32 | enabled | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_INPUT | Invalid input parameter.
@comm
    This API set the EEELLDP enable function.
    If EEELLDP function is enabled, upon receiving an eeelldp frame,
    ASIC will signal 8051 (interrupt or trap) to handled the received
    EEELLDP frame
*/
ret_t rtl8370_setAsicEeelldp(uint32 enable)
{
    if (enable > 1)
        return RT_ERR_INPUT;
    
    return rtl8370_setAsicRegBit(RTL8370_EEELLDP_CTRL0_REG, RTL8370_EEELLDP_ENABLE_OFFSET, enable);
}
Пример #26
0
/*
@func ret_t | rtl8370_setAsicLutCamTbUsage | Configure Lut CAM table usage.
@parm uint32 | disabled | L2 CAM table usage 0: enabled, 1: disabled. 
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable input.
@common
    System support 64 CAM entries only. Fields of CAM entry are as same as L2 LUT except without IP_MULT field. It means that ASIC will not checking IP multicast
    frame by CAM lookup. ASIC will lookup CAM by entry location sequence (0>1>...>62>63). ASIC looks up L2 LUT and get a hit while receiving frame, then it will 
    abandon look up result from CAM. As same as L2 LUT writing rule by ASIC auto learning, ASIC will not over write CAM entry contained Static field is not 0.
    Only while 4 entries (4 way hash) in L2 LUT are all not free (Static is not 0), then ASIC will write auto learn result to CAM.  
*/
ret_t rtl8370_setAsicLutCamTbUsage(uint32 disabled)
{
    if(disabled > 1)
        return RT_ERR_ENABLE; 
    
    return rtl8370_setAsicRegBit(RTL8370_REG_LUT_CFG, RTL8370_BCAM_DISABLE_OFFSET, disabled);
}
Пример #27
0
/*
@func ret_t | rtl8370_setAsicGreenTrafficType | Set traffic type for each priority
@parm uint32 | priority | internal priority (0~7).
@parm uint32 | traffictype | high/low traffic type, 1:high priority traffic type, 0:low priority traffic type
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error. 
@rvalue RT_ERR_QOS_INT_PRIORITY | Invalid priority. 
@comm
    The API can set internal priority to traffic type. ASIC will set indicator for receiving high-prioirty traffic in 1second by traffic type configuration.
*/
ret_t rtl8370_setAsicGreenTrafficType(uint32 priority, uint32 traffictype)
{

    if(priority > RTL8370_PRIMAX)
        return RT_ERR_QOS_INT_PRIORITY;

    return rtl8370_setAsicRegBit(RTL8370_REG_HIGHPRI_CFG , priority, (traffictype?1:0));
}
Пример #28
0
/*
@func ret_t | rtl8370_setAsicRemarkingDscpAbility | Set DSCP remarking ability.
@parm uint32* | enabled | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_ENABLE | Invalid enable parameter.
@comm
    The API can enable or disable DSCP remarking ability for whole system. 
 */
ret_t rtl8370_setAsicRemarkingDscpAbility(uint32 enabled)
{
    /* Invalid input parameter */
    if((enabled != 0) && (enabled != 1))
        return RT_ERR_ENABLE; 

    return rtl8370_setAsicRegBit(RTL8370_REMARKING_CTRL_REG, RTL8370_REMARKING_DSCP_ENABLE_OFFSET, enabled);    
}
/*
@func ret_t  | rtl8370_setAsic1xMBEnConfig | Set 802.1x mac-based port enable configuration
@parm uint32 | port | Physical port number.
@parm uint32 | enabled | 1: enabled, 0: disabled.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_SMI | SMI access error.
@rvalue RT_ERR_PORT_ID | Invalid port number.
@rvalue RT_ERR_ENABLE | Invalid enable input.
@comm
    The API can update the mac-based port enable register content.
*/
ret_t rtl8370_setAsic1xMBEnConfig(uint32 port,uint32 enabled)
{
    if(port >= RTL8370_PORTNO)
        return RT_ERR_PORT_ID;
    if(enabled > 1)
        return RT_ERR_ENABLE;

    return rtl8370_setAsicRegBit(RTL8370_DOT1X_MAC_ENABLE_REG, port, enabled);
}
/*
@func ret_t  | rtl8370_setAsic1xPBAuthConfig | Set 802.1x port-based auth. port configuration
@parm uint32 | port | Physical port number.
@parm uint32 | auth | 1: authorised, 0: non-authorised.
@rvalue RT_ERR_OK | Success.
@rvalue RT_ERR_PORT_ID | Invalid port number.
@rvalue RT_ERR_ENABLE | Invalid enable input.
@comm
    The API can update the port-based auth. port register content.
*/
ret_t rtl8370_setAsic1xPBAuthConfig(uint32 port,uint32 auth)
{
    if(port >= RTL8370_PORTNO)
        return RT_ERR_PORT_ID;
    if(auth > 1)
        return RT_ERR_ENABLE;  

    return rtl8370_setAsicRegBit(RTL8370_DOT1X_PORT_AUTH_REG, port, auth);
}