28#define THIS_FILE_ID OAM_FILE_ID_HMAC_M2U_H
44#define HMAC_M2U_GRPADDR_FILTEROUT_NUM 8
45#define HMAC_M2U_DENY_GROUP 4026531585UL
46#define HMAC_M2U_MIN_DENY_GROUP 3758096384UL
47#define HMAC_M2U_MAX_DENY_GROUP 4026531839UL
48#define HMAC_M2U_SPECIAL_GROUP1 3758096385UL
49#define HMAC_M2U_SPECIAL_GROUP2 3758096386UL
50#define HMAC_M2U_RIPV2_GROUP 3758096393UL
51#define HMAC_M2U_SPECIAL_GROUP3 3758096406UL
52#define HMAC_M2U_UPNP_GROUP 4026531834UL
54#define DEFAULT_IPV4_DENY_GROUP_COUNT 1
55#define DEFAULT_IPV6_DENY_GROUP_COUNT 1
56#define SPECIAL_M2U_GROUP_COUNT_IPV4 5
57#define SPECIAL_M2U_GROUP_COUNT_IPV6 5
58#define HMAC_M2U_ADAPTIVE_STA_HASHSIZE 16
61#define MAC_ETH_PROTOCOL_SUBTYPE 0x17
63#define MIN_IP_HDR_LEN 5
65#define HMAC_DEF_M2U_TIMER 30000
66#define HMAC_DEF_M2U_TIMEOUT 120000
68#define HMAC_DEF_ADAPTIVE_TIMEOUT 1000
69#define HMAC_DEF_THRESHOLD_TIME 500
70#define HMAC_DEF_NUM_OF_ADAPTIVE 16
72#define ETHER_TYPE_VLAN_88A8 0x88a8
73#define ETHER_TYPE_VLAN_9100 0x9100
74#define MAX_STA_NUM_OF_ALL_GROUP 1000
75#define MAX_STA_NUM_OF_ADAPTIVE 128
76#define MAX_STR_SIZE_OF_U8 4
78#define HMAC_M2U_MAX_PRINT_SIZE 100
80#define ether_is_with_vlan_tag(_a) \
81 (((_a) == oal_host2net_short(ETHER_TYPE_VLAN_88A8)) || \
82 ((_a) == oal_host2net_short(ETHER_TYPE_VLAN_9100)) || \
83 ((_a) == oal_host2net_short(ETHER_TYPE_VLAN)))
85#define oal_is_mdnsv4_mac(_a, _b) (((osal_u8)((_a)[0]) == 0x01) && ((osal_u8)((_a)[1]) == 0x00) && \
86 ((osal_u8)((_a)[2]) == 0x5e) && ((osal_u8)((_a)[3]) == 0x00) && \
87 ((osal_u8)((_a)[4]) == 0x00) && ((osal_u8)((_a)[5]) == 0xfb) && \
88 ((_b) == oal_host2net_short(ETHER_TYPE_IP)))
89#define oal_is_mdnsv6_mac(_a, _b) (((osal_u8)((_a)[0]) == 0x33) && ((osal_u8)((_a)[1]) == 0x33) && \
90 ((osal_u8)((_a)[2]) == 0x00) && ((osal_u8)((_a)[3]) == 0x00) && \
91 ((osal_u8)((_a)[4]) == 0x00) && ((osal_u8)((_a)[5]) == 0xfb) && \
92 ((_b) == oal_host2net_short(ETHER_TYPE_IPV6)))
94#ifdef _PRE_WLAN_FEATURE_HERA_MCAST
96#define hmac_adaptive_cal_hash_value(_puc_mac_addr) \
97 ((_puc_mac_addr)[ETHER_ADDR_LEN - 1] & (HMAC_M2U_ADAPTIVE_STA_HASHSIZE - 1))
121#if defined(OAL_BYTE_ORDER) && defined(OAL_LITTLE_ENDIAN) && (OAL_BYTE_ORDER == OAL_LITTLE_ENDIAN)
215#ifdef _PRE_WLAN_FEATURE_HERA_MCAST
225} hmac_m2u_adaptive_hash_stru;
234} hmac_m2u_adaptive_list_update_stru;
246#ifdef _PRE_WLAN_FEATURE_HERA_MCAST
291#ifdef _PRE_WLAN_FEATURE_HERA_MCAST
osal_u8 hmac_m2u_mcast_mode_enum_uint8
Definition hmac_m2u.h:118
osal_void hmac_m2u_detach(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.c:2994
osal_u32(* hmac_m2u_snoop_convert_cb)(hmac_vap_stru *hmac_vap, oal_netbuf_stru *buf)
Definition hmac_m2u.h:306
osal_u8 hmac_m2u_igmp_cmd_enum_uint8
Definition hmac_m2u.h:109
osal_void(* hmac_m2u_cleanup_snoopwds_node_cb)(hmac_user_stru *hmac_user)
Definition hmac_m2u.h:305
osal_void hmac_m2u_snoop_inspecting(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, oal_netbuf_stru *buf)
Definition hmac_m2u.c:1432
osal_void hmac_m2u_add_snoop_ipv6_deny_entry(hmac_vap_stru *hmac_vap, osal_u8 *grpaddr)
Definition hmac_m2u.c:714
osal_u32 hmac_m2u_snoop_convert(hmac_vap_stru *hmac_vap, oal_netbuf_stru *buf)
Definition hmac_m2u.c:2019
osal_void(* hmac_m2u_unicast_convert_multicast_cb)(hmac_vap_stru *hmac_vap, oal_netbuf_stru *pst_netbuf, hmac_msdu_stru *msdu)
Definition hmac_m2u.h:307
osal_s32 hmac_config_m2u_snoop_on(hmac_vap_stru *hmac_vap, frw_msg *msg)
hmac_m2u_update_cmd_enum
Definition hmac_m2u.h:103
@ HMAC_M2U_CMD_INCLUDE_LIST
Definition hmac_m2u.h:105
@ HMAC_M2U_IGMP_CMD_BUTT
Definition hmac_m2u.h:107
@ HMAC_M2U_CMD_EXCLUDE_LIST
Definition hmac_m2u.h:104
osal_void hmac_m2u_unicast_convert_multicast(hmac_vap_stru *hmac_vap, oal_netbuf_stru *pst_netbuf, hmac_msdu_stru *msdu)
Definition hmac_m2u.c:2345
osal_bool(* hmac_m2u_tx_classify_special_cb)(hmac_vap_stru *hmac_vap, mac_tx_ctl_stru *tx_ctl, osal_u8 *tid)
Definition hmac_m2u.h:301
hmac_m2u_mcast_mode_enum
Definition hmac_m2u.h:111
@ HMAC_M2U_MCAST_BUTT
Definition hmac_m2u.h:116
@ HMAC_M2U_MCAST_MAITAIN
Definition hmac_m2u.h:112
@ HMAC_M2U_MCAST_TRANSLATE
Definition hmac_m2u.h:114
@ HMAC_M2U_MCAST_TUNNEL
Definition hmac_m2u.h:113
osal_void hmac_m2u_attach(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.c:2933
#define SPECIAL_M2U_GROUP_COUNT_IPV6
Definition hmac_m2u.h:57
osal_s32 hmac_config_igmp_packet_xmit(hmac_vap_stru *hmac_vap, frw_msg *msg)
osal_u32 hmac_m2u_update_snoop_list(hmac_m2u_list_update_stru *list_entry)
Definition hmac_m2u.c:450
osal_void(* hmac_m2u_attach_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.h:309
osal_void hmac_m2u_cleanup_snoopwds_node(hmac_user_stru *hmac_user)
Definition hmac_m2u.c:1699
osal_void hmac_m2u_del_ipv6_deny_entry(hmac_vap_stru *hmac_vap, osal_u8 *grpaddr)
Definition hmac_m2u.c:807
osal_void hmac_m2u_clear_deny_table(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.c:612
#define HMAC_M2U_ADAPTIVE_STA_HASHSIZE
Definition hmac_m2u.h:58
osal_void(* hmac_m2u_snoop_inspecting_cb)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, oal_netbuf_stru *buf)
Definition hmac_m2u.h:303
osal_void hmac_m2u_add_snoop_ipv4_deny_entry(hmac_vap_stru *hmac_vap, osal_u32 *pul_grpaddr)
Definition hmac_m2u.c:673
osal_u32 hmac_m2u_print_all_snoop_list(hmac_vap_stru *hmac_vap, oal_snoop_all_group_stru *snoop_all_grp)
Definition hmac_m2u.c:897
static osal_u32 used
Definition hmac_m2u.h:312
osal_u32 hmac_m2u_igmp_v1v2_update(hmac_vap_stru *hmac_vap, hmac_m2u_list_update_stru *list_entry, mac_igmp_header_stru *igmp)
Definition hmac_m2u.c:1001
#define HMAC_M2U_GRPADDR_FILTEROUT_NUM
Definition hmac_m2u.h:44
hmac_m2u_deny_table_cfg
Definition hmac_m2u.h:30
@ HMAC_H2U_DENY_TABLE_ADD_IPV4
Definition hmac_m2u.h:33
@ HMAC_H2U_DENY_TABLE_CLEAR
Definition hmac_m2u.h:32
@ HMAC_H2U_DENY_TABLE_DEL_IPV4
Definition hmac_m2u.h:35
@ HMAC_H2U_DENY_TABLE_LIST
Definition hmac_m2u.h:31
@ HMAC_H2U_DENY_TABLE_ADD_IPV6
Definition hmac_m2u.h:34
@ HMAC_H2U_DENY_TABLE_DEL_IPV6
Definition hmac_m2u.h:36
@ HMAC_M2U_DENY_TABLE_BUTT
Definition hmac_m2u.h:38
osal_s32 hmac_config_m2u_deny_table(hmac_vap_stru *hmac_vap, frw_msg *msg)
osal_void(* hmac_m2u_detach_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.h:310
osal_void hmac_m2u_del_ipv4_deny_entry(hmac_vap_stru *hmac_vap, const osal_u32 *pul_grpaddr)
Definition hmac_m2u.c:757
#define SPECIAL_M2U_GROUP_COUNT_IPV4
Definition hmac_m2u.h:56
osal_s32 hmac_config_show_m2u_snoop_table(hmac_vap_stru *hmac_vap, frw_msg *msg)
osal_void hmac_m2u_show_snoop_deny_table(hmac_vap_stru *hmac_vap)
Definition hmac_m2u.c:485
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
osal_u16 seq_num
Definition mac_frame_rom.h:7
#define OAL_IPV6_ADDR_SIZE
Definition oal_net_rom.h:137
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
osal_u8 osal_bool
Definition osal_types.h:27
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Log message information header.
Definition log_oam_logger.h:564
Definition frw_msg_rom.h:74
Definition frw_ext_common_rom.h:20
Definition hmac_m2u.h:157
osal_u8 reserve
Definition hmac_m2u.h:161
mac_vlan_tag_stru outer_vlan_tag
Definition hmac_m2u.h:163
osal_u8 sta_num
Definition hmac_m2u.h:160
mac_vlan_tag_stru inner_vlan_tag
Definition hmac_m2u.h:164
Definition hmac_m2u.h:189
osal_u32 timestamp
Definition hmac_m2u.h:191
hmac_user_stru * hmac_user
Definition hmac_m2u.h:192
osal_u8 mode
Definition hmac_m2u.h:194
osal_u8 src_ip_addr_len
Definition hmac_m2u.h:195
Definition hmac_m2u.h:201
osal_u32 timestamp
Definition hmac_m2u.h:205
hmac_m2u_igmp_cmd_enum_uint8 cmd
Definition hmac_m2u.h:210
hmac_user_stru * hmac_user
Definition hmac_m2u.h:207
osal_u8 src_ip_addr_len
Definition hmac_m2u.h:211
mac_vlan_tag_stru outer_vlan_tag
Definition hmac_m2u.h:208
hmac_vap_stru * hmac_vap
Definition hmac_m2u.h:206
mac_vlan_tag_stru inner_vlan_tag
Definition hmac_m2u.h:209
Definition hmac_m2u.h:168
osal_u8 deny_count_ipv6
Definition hmac_m2u.h:176
osal_u16 total_sta_num
Definition hmac_m2u.h:174
osal_u16 misc
Definition hmac_m2u.h:173
osal_u16 group_list_count
Definition hmac_m2u.h:172
osal_u8 deny_count_ipv4
Definition hmac_m2u.h:175
Definition hmac_m2u.h:238
osal_u32 timeout
Definition hmac_m2u.h:245
hmac_m2u_snoop_list_stru m2u_snooplist
Definition hmac_m2u.h:239
frw_timeout_stru snooplist_timer
Definition hmac_m2u.h:244
wlan_tidno_enum_uint8 tid_num
Definition hmac_m2u.h:243
hmac_m2u_mcast_mode_enum_uint8 mcast_mode
Definition hmac_m2u.h:241
oal_bool_enum_uint8 discard_mcast
Definition hmac_m2u.h:242
oal_bool_enum_uint8 snoop_enable
Definition hmac_m2u.h:240
Definition dmac_ext_if_hcm.h:341
Definition mac_user_ext.h:519
Definition mac_vap_ext.h:2019
Definition dmac_ext_if_device_rom.h:98
Definition hmac_m2u.h:120
osal_u32 offset
Definition hmac_m2u.h:132
osal_u32 proto
Definition hmac_m2u.h:128
osal_u32 opt_hdr_len32
Definition hmac_m2u.h:130
osal_u32 frame_type
Definition hmac_m2u.h:129
osal_u32 seq_num
Definition hmac_m2u.h:131
Definition oal_net_cfg80211.h:1366
Definition osal_list.h:39
Definition oal_skbuff.h:82
osal_u8 wlan_tidno_enum_uint8
Definition wlan_types_base_rom.h:74