#ifndef _RTL8370_ASICDRV_IGMP_H_ #define _RTL8370_ASICDRV_IGMP_H_ /****************************************************************/ /* Header File inclusion */ /****************************************************************/ #include <rtl8370_asicdrv.h> enum RTL8370_IGMP { IGMP_FORWARD = 0, IGMP_TRAP_TO_CPU, IGMP_DROP, IGMP_FORWARD_EXCLUDE_CPU, }; enum RTL8370_IGMP_TYPE { IPV4_IGMP = 0, IPV6_MLD, PPPOE_IPV4_IGMP, PPPOE_IPV6_MLD, }; typedef struct rtl8370_igmp_s{ #ifdef _LITTLE_ENDIAN uint16 portiso_leaky:1; uint16 vlan_leaky:1; uint16 trap_priority:3; uint16 discard_storm_filter:1; uint16 igmp_trap:2; uint16 mld_trap:2; uint16 pppoe_igmp_trap:2; uint16 pppoe_mld_trap:2; uint16 reserved:2; #else uint16 reserved:2; uint16 pppoe_mld_trap:2; uint16 pppoe_igmp_trap:2; uint16 mld_trap:2; uint16 igmp_trap:2; uint16 discard_storm_filter:1; uint16 trap_priority:3; uint16 vlan_leaky:1; uint16 portiso_leaky:1; #endif }rtl8370_igmp_t; extern ret_t rtl8370_setAsicIpMulticastVlanLeaky(uint32 port, uint32 enabled ); extern ret_t rtl8370_getAsicIpMulticastVlanLeaky(uint32 port, uint32 *ptr_enabled ); extern ret_t rtl8370_setAsicIpMulticastPortIsoLeaky( uint32 port, uint32 enabled ); extern ret_t rtl8370_getAsicIpMulticastPortIsoLeaky( uint32 port, uint32* enabled ); extern ret_t rtl8370_getAsicIgmp( rtl8370_igmp_t* igmpcfg); extern ret_t rtl8370_setAsicIgmp( rtl8370_igmp_t* igmpcfg); #endif /*#ifndef _RTL8370_ASICDRV_IGMP_H_*/