rtl8188eu: Remove dead code for FREEBSD

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2014-12-15 16:58:13 -06:00
parent a68c6cc26e
commit dd606233f2
22 changed files with 6 additions and 2326 deletions

View file

@ -288,17 +288,6 @@ _func_enter_;
goto exit;
}
#endif
#ifdef PLATFORM_FREEBSD
//i think needs to check again
delta_time = (curr_time -pnetwork->last_scanned)/hz;
if(delta_time < lifetime)// unit:sec
{
goto exit;
}
#endif
}
@ -525,7 +514,6 @@ _func_exit_;
}
#ifndef PLATFORM_FREEBSD //Baron
static struct wlan_network *rtw_dequeue_network(_queue *queue)
{
struct wlan_network *pnetwork;
@ -534,7 +522,6 @@ _func_enter_;
_func_exit_;
return pnetwork;
}
#endif //PLATFORM_FREEBSD
struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv );
struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv )//(_queue *free_queue)
@ -2458,25 +2445,6 @@ void _rtw_join_timeout_handler (_adapter *adapter)
#endif
_func_enter_;
#ifdef PLATFORM_FREEBSD
rtw_mtx_lock(NULL);
if (callout_pending(&adapter->mlmepriv.assoc_timer.callout)) {
/* callout was reset */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
if (!callout_active(&adapter->mlmepriv.assoc_timer.callout)) {
/* callout was stopped */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
callout_deactivate(&adapter->mlmepriv.assoc_timer.callout);
#endif
DBG_871X("%s, fw_state=%x\n", __FUNCTION__, get_fwstate(pmlmepriv));
if(adapter->bDriverStopped ||adapter->bSurpriseRemoved)
@ -2530,9 +2498,6 @@ _func_enter_;
#ifdef CONFIG_DRVEXT_MODULE_WSC
drvext_assoc_fail_indicate(&adapter->drvextpriv);
#endif
#ifdef PLATFORM_FREEBSD
rtw_mtx_unlock(NULL);
#endif
_func_exit_;
@ -2769,7 +2734,6 @@ void rtw_event_polling_timer_hdl(_adapter *adapter)
#define RTW_SCAN_RESULT_EXPIRE 2000
#endif
#ifndef PLATFORM_FREEBSD
/*
* Select a new join candidate from the original @param candidate and @param competitor
* @return _TRUE: candidate is updated
@ -2814,46 +2778,6 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv
updated = _TRUE;
}
#if 0
if(pmlmepriv->assoc_by_bssid==_TRUE) { // associate with bssid
if( (*candidate == NULL ||(*candidate)->network.Rssi<competitor->network.Rssi )
&& _rtw_memcmp(competitor->network.MacAddress, pmlmepriv->assoc_bssid, ETH_ALEN)==_TRUE
) {
*candidate = competitor;
updated = _TRUE;
}
} else if (pmlmepriv->assoc_ssid.SsidLength == 0 ) { // associate with ssid, but ssidlength is 0
if( (*candidate == NULL ||(*candidate)->network.Rssi<competitor->network.Rssi ) ) {
*candidate = competitor;
updated = _TRUE;
}
} else
#ifdef CONFIG_LAYER2_ROAMING
if(rtw_to_roaming(adapter)) { // roaming
if( (*candidate == NULL ||(*candidate)->network.Rssi<competitor->network.Rssi )
&& is_same_ess(&competitor->network, &pmlmepriv->cur_network.network)
//&&(!is_same_network(&competitor->network, &pmlmepriv->cur_network.network))
&& rtw_get_passing_time_ms((u32)competitor->last_scanned) < RTW_SCAN_RESULT_EXPIRE
&& rtw_is_desired_network(adapter, competitor)
) {
*candidate = competitor;
updated = _TRUE;
}
} else
#endif
{ // associate with ssid
if( (*candidate == NULL ||(*candidate)->network.Rssi<competitor->network.Rssi )
&& (competitor->network.Ssid.SsidLength==pmlmepriv->assoc_ssid.SsidLength)
&&((_rtw_memcmp(competitor->network.Ssid.Ssid, pmlmepriv->assoc_ssid.Ssid, pmlmepriv->assoc_ssid.SsidLength)) == _TRUE)
&& rtw_is_desired_network(adapter, competitor)
) {
*candidate = competitor;
updated = _TRUE;
}
}
#endif
if(updated){
DBG_871X("[by_bssid:%u][assoc_ssid:%s]"
#ifdef CONFIG_LAYER2_ROAMING
@ -2984,200 +2908,6 @@ _func_exit_;
return ret;
}
#else
int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv )
{
_irqL irqL;
_list *phead;
#ifdef CONFIG_ANTENNA_DIVERSITY
u8 CurrentAntenna;
#endif
unsigned char *dst_ssid, *src_ssid;
_adapter *adapter;
_queue *queue = &(pmlmepriv->scanned_queue);
struct wlan_network *pnetwork = NULL;
struct wlan_network *pnetwork_max_rssi = NULL;
#ifdef CONFIG_LAYER2_ROAMING
struct wlan_network * roaming_candidate=NULL;
u32 cur_time=rtw_get_current_time();
#endif
_func_enter_;
_enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
phead = get_list_head(queue);
adapter = (_adapter *)pmlmepriv->nic_hdl;
pmlmepriv->pscanned = get_next( phead );
while (!rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) {
pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list);
if(pnetwork==NULL){
RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("(2)rtw_select_and_join_from_scanned_queue return _FAIL:(pnetwork==NULL)\n"));
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
return _FAIL;
}
dst_ssid = pnetwork->network.Ssid.Ssid;
src_ssid = pmlmepriv->assoc_ssid.Ssid;
pmlmepriv->pscanned = get_next(pmlmepriv->pscanned);
#if 0
DBG_871X("MacAddress:"MAC_FMT" ssid:%s\n", MAC_ARG(pnetwork->network.MacAddress), pnetwork->network.Ssid.Ssid);
#endif
if(pmlmepriv->assoc_by_bssid==_TRUE)
{
if(_rtw_memcmp(pnetwork->network.MacAddress, pmlmepriv->assoc_bssid, ETH_ALEN)==_TRUE)
{
//remove the condition @ 20081125
//if((pmlmepriv->cur_network.network.InfrastructureMode==Ndis802_11AutoUnknown)||
// pmlmepriv->cur_network.network.InfrastructureMode == pnetwork->network.InfrastructureMode)
// goto ask_for_joinbss;
if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)
{
if(is_same_network(&pmlmepriv->cur_network.network, &pnetwork->network), 0)
{
//DBG_871X("select_and_join(1): _FW_LINKED and is same network, it needn't join again\n");
rtw_indicate_connect(adapter);//rtw_indicate_connect again
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
return 2;
}
else
{
rtw_disassoc_cmd(adapter, 0, _TRUE);
rtw_indicate_disconnect(adapter);
rtw_free_assoc_resources(adapter, 0);
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
goto ask_for_joinbss;
}
}
else
{
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
goto ask_for_joinbss;
}
}
} else if (pmlmepriv->assoc_ssid.SsidLength == 0) {
goto ask_for_joinbss;//anyway, join first selected(dequeued) pnetwork if ssid_len=0
#ifdef CONFIG_LAYER2_ROAMING
} else if (rtw_to_roaming(adapter) > 0) {
if( (roaming_candidate == NULL ||roaming_candidate->network.Rssi<pnetwork->network.Rssi )
&& is_same_ess(&pnetwork->network, &pmlmepriv->cur_network.network)
//&&(!is_same_network(&pnetwork->network, &pmlmepriv->cur_network.network, 0))
&& rtw_get_time_interval_ms((u32)pnetwork->last_scanned,cur_time) < 5000
) {
roaming_candidate = pnetwork;
//RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,
DBG_871X
("roaming_candidate???: %s("MAC_FMT")\n",
roaming_candidate->network.Ssid.Ssid, MAC_ARG(roaming_candidate->network.MacAddress) )
//)
;
}
continue;
#endif
} else if ( (pnetwork->network.Ssid.SsidLength==pmlmepriv->assoc_ssid.SsidLength)
&&((_rtw_memcmp(dst_ssid, src_ssid, pmlmepriv->assoc_ssid.SsidLength)) == _TRUE)
)
{
RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("dst_ssid=%s, src_ssid=%s \n", dst_ssid, src_ssid));
#ifdef CONFIG_ANTENNA_DIVERSITY
rtw_hal_get_def_var(adapter, HAL_DEF_CURRENT_ANTENNA, &(CurrentAntenna));
DBG_871X("#### dst_ssid=(%s) Opt_Ant_(%s) , cur_Ant(%s)\n", dst_ssid,
(2==pnetwork->network.PhyInfo.Optimum_antenna)?"A":"B",
(2==CurrentAntenna)?"A":"B");
#endif
//remove the condition @ 20081125
//if((pmlmepriv->cur_network.network.InfrastructureMode==Ndis802_11AutoUnknown)||
// pmlmepriv->cur_network.network.InfrastructureMode == pnetwork->network.InfrastructureMode)
//{
// _rtw_memcpy(pmlmepriv->assoc_bssid, pnetwork->network.MacAddress, ETH_ALEN);
// goto ask_for_joinbss;
//}
if(pmlmepriv->assoc_by_rssi==_TRUE)//if the ssid is the same, select the bss which has the max rssi
{
if( NULL==pnetwork_max_rssi|| pnetwork->network.Rssi > pnetwork_max_rssi->network.Rssi)
pnetwork_max_rssi = pnetwork;
}
else if(rtw_is_desired_network(adapter, pnetwork) == _TRUE)
{
if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)
{
#if 0
if(is_same_network(&pmlmepriv->cur_network.network, &pnetwork->network, 0))
{
DBG_871X("select_and_join(2): _FW_LINKED and is same network, it needn't join again\n");
rtw_indicate_connect(adapter);//rtw_indicate_connect again
return 2;
}
else
#endif
{
rtw_disassoc_cmd(adapter, 0, _TRUE);
//rtw_indicate_disconnect(adapter);//
rtw_free_assoc_resources(adapter, 0);
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
goto ask_for_joinbss;
}
}
else
{
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
goto ask_for_joinbss;
}
}
}
}
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
#ifdef CONFIG_LAYER2_ROAMING
if(rtw_to_roaming(adapter) > 0 && roaming_candidate ){
pnetwork=roaming_candidate;
DBG_871X("select_and_join_from_scanned_queue: roaming_candidate: %s("MAC_FMT")\n",
pnetwork->network.Ssid.Ssid, MAC_ARG(pnetwork->network.MacAddress));
goto ask_for_joinbss;
}
#endif
if((pmlmepriv->assoc_by_rssi==_TRUE) && (pnetwork_max_rssi!=NULL))
{
pnetwork = pnetwork_max_rssi;
DBG_871X("select_and_join_from_scanned_queue: pnetwork_max_rssi: %s("MAC_FMT")\n",
pnetwork->network.Ssid.Ssid, MAC_ARG(pnetwork->network.MacAddress));
goto ask_for_joinbss;
}
DBG_871X("(1)rtw_select_and_join_from_scanned_queue return _FAIL\n");
_func_exit_;
return _FAIL;
ask_for_joinbss:
_func_exit_;
return rtw_joinbss_cmd(adapter, pnetwork);
}
#endif //PLATFORM_FREEBSD
sint rtw_set_auth(_adapter * adapter,struct security_priv *psecuritypriv)
{

View file

@ -10979,26 +10979,6 @@ void survey_timer_hdl(_adapter *padapter)
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
#ifdef CONFIG_P2P
struct wifidirect_info *pwdinfo= &(padapter->wdinfo);
#endif
//DBG_871X("marc: survey timer\n");
#ifdef PLATFORM_FREEBSD
rtw_mtx_lock(NULL);
if (callout_pending(&padapter->mlmeextpriv.survey_timer.callout)) {
/* callout was reset */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
if (!callout_active(&padapter->mlmeextpriv.survey_timer.callout)) {
/* callout was stopped */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
callout_deactivate(&padapter->mlmeextpriv.survey_timer.callout);
#endif
//issue rtw_sitesurvey_cmd
@ -11053,10 +11033,6 @@ void survey_timer_hdl(_adapter *padapter)
exit_survey_timer_hdl:
#ifdef PLATFORM_FREEBSD
rtw_mtx_unlock(NULL);
#endif
return;
}
@ -11069,25 +11045,6 @@ void link_timer_hdl(_adapter *padapter)
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
//struct sta_priv *pstapriv = &padapter->stapriv;
#ifdef PLATFORM_FREEBSD
rtw_mtx_lock(NULL);
if (callout_pending(&padapter->mlmeextpriv.survey_timer.callout)) {
/* callout was reset */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
if (!callout_active(&padapter->mlmeextpriv.survey_timer.callout)) {
/* callout was stopped */
//mtx_unlock(&sc->sc_mtx);
rtw_mtx_unlock(NULL);
return;
}
callout_deactivate(&padapter->mlmeextpriv.survey_timer.callout);
#endif
if (pmlmeinfo->state & WIFI_FW_AUTH_NULL)
{
DBG_871X("link_timer_hdl:no beacon while connecting\n");
@ -11194,10 +11151,6 @@ void link_timer_hdl(_adapter *padapter)
}
#endif
#ifdef PLATFORM_FREEBSD
rtw_mtx_unlock(NULL);
#endif
return;
}

View file

@ -204,7 +204,6 @@ exit:
return ret;
}
#if defined (PLATFORM_LINUX)||defined (PLATFORM_FREEBSD)
void rtw_ps_processor(_adapter*padapter)
{
#ifdef CONFIG_P2P
@ -333,15 +332,11 @@ exit:
return;
}
void pwr_state_check_handler(void *FunctionContext);
void pwr_state_check_handler(void *FunctionContext)
{
_adapter *padapter = (_adapter *)FunctionContext;
rtw_ps_cmd(padapter);
}
#endif
#ifdef CONFIG_LPS
/*

View file

@ -264,8 +264,6 @@ _func_enter_;
#endif
#if defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
if(precvframe->u.hdr.pkt)
{
#ifdef CONFIG_BSD_RX_USE_MBUF
@ -276,8 +274,6 @@ _func_enter_;
precvframe->u.hdr.pkt = NULL;
}
#endif //defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
_enter_critical_bh(&pfree_recv_queue->lock, &irqL);
rtw_list_delete(&(precvframe->u.hdr.list));
@ -2828,23 +2824,16 @@ _func_exit_;
int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe);
int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
{
#if defined (PLATFORM_LINUX) || defined (PLATFORM_FREEBSD) //for amsdu TP improvement,Creator: Thomas
int a_len, padding_len;
u16 eth_type, nSubframe_Length;
u8 nr_subframes, i;
unsigned char *pdata;
struct rx_pkt_attrib *pattrib;
#ifndef PLATFORM_FREEBSD
unsigned char *data_ptr;
_pkt *sub_skb,*subframes[MAX_SUBFRAME_COUNT];
#endif //PLATFORM_FREEBSD
struct recv_priv *precvpriv = &padapter->recvpriv;
_queue *pfree_recv_queue = &(precvpriv->free_recv_queue);
int ret = _SUCCESS;
#ifdef PLATFORM_FREEBSD
struct mbuf *sub_m=NULL, *subframes[MAX_SUBFRAME_COUNT];
u8 *ptr,offset;
#endif //PLATFORM_FREEBSD
nr_subframes = 0;
pattrib = &prframe->u.hdr.attrib;
@ -2878,7 +2867,6 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
goto exit;
}
#ifndef PLATFORM_FREEBSD
/* move the data point to data content */
pdata += ETH_HLEN;
a_len -= ETH_HLEN;
@ -2909,24 +2897,8 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
}
}
#else // PLATFORM_FREEBSD
//PLATFORM_FREEBSD
//Allocate a mbuff,
//sub_m =m_devget(pdata, nSubframe_Length+12, 12, padapter->pifp,NULL);
sub_m =m_devget(pdata, nSubframe_Length+ETH_HLEN, ETHER_ALIGN, padapter->pifp,NULL);
pdata += ETH_HLEN;
a_len -= ETH_HLEN;
#endif // PLATFORM_FREEBSD
#ifndef PLATFORM_FREEBSD
//sub_skb->dev = padapter->pnetdev;
subframes[nr_subframes++] = sub_skb;
#else //PLATFORM_FREEBSD
//PLATFORM_FREEBSD
subframes[nr_subframes++] = sub_m;
#endif //PLATFORM_FREEBSD
if(nr_subframes >= MAX_SUBFRAME_COUNT) {
DBG_871X("ParseSubframe(): Too many Subframes! Packets dropped!\n");
@ -2950,7 +2922,6 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
}
for(i=0; i<nr_subframes; i++){
#ifndef PLATFORM_FREEBSD
sub_skb = subframes[i];
/* convert hdr + possible LLC headers into Ethernet header */
#ifdef ENDIAN_FREE
@ -3027,70 +2998,6 @@ int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
rtw_netif_rx(padapter->pnetdev, sub_skb);
}
#else //PLATFORM_FREEBSD
//PLATFORM_FREEBSD
sub_m = subframes[i];
ptr=mtod(sub_m, u8 *);
offset=ETH_HLEN;
/* convert hdr + possible LLC headers into Ethernet header */
#ifdef ENDIAN_FREE
eth_type = ntohs(*(u16*)&ptr[offset+6]);
#else // ENDIAN_FREE
eth_type = ( ptr[offset+6] << 8) | ptr[offset+7];
#endif // ENDIAN_FREE
if (sub_m->m_pkthdr.len >= ETH_HLEN+8 &&
((_rtw_memcmp(ptr+ETH_HLEN, rtw_rfc1042_header, SNAP_SIZE) &&
eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) ||
_rtw_memcmp(ptr+ETH_HLEN, rtw_bridge_tunnel_header, SNAP_SIZE) )) {
/* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */
offset+=SNAP_SIZE;
_rtw_memcpy(&ptr[offset-ETH_ALEN], pattrib->src, ETH_ALEN);
offset-=ETH_ALEN;
_rtw_memcpy(&ptr[offset-ETH_ALEN], pattrib->dst, ETH_ALEN);
offset-=ETH_ALEN;
} else {
u16 len;
/* Leave Ethernet header part of hdr and full payload */
len = htons(sub_m->m_pkthdr.len-offset);
_rtw_memcpy(&ptr[offset- 2], &len, 2);
offset-=2;
_rtw_memcpy(&ptr[offset-ETH_ALEN], pattrib->src, ETH_ALEN);
offset-=ETH_ALEN;
_rtw_memcpy(&ptr[offset-ETH_ALEN], pattrib->dst, ETH_ALEN);
offset-=ETH_ALEN;
}
m_adj(sub_m,offset);
/* Indicat the packets to upper layer */
if (sub_m) {
#if 0
#ifdef CONFIG_TCP_CSUM_OFFLOAD_RX
if ( (pattrib->tcpchk_valid == 1) && (pattrib->tcp_chkrpt == 1) ) {
sub_skb->ip_summed = CHECKSUM_UNNECESSARY;
} else {
sub_skb->ip_summed = CHECKSUM_NONE;
}
#else /* !CONFIG_TCP_CSUM_OFFLOAD_RX */
sub_skb->ip_summed = CHECKSUM_NONE;
#endif //CONFIG_TCP_CSUM_OFFLOAD_RX
#endif //0
if ( ((u32)(mtod(sub_m, caddr_t) + 14) % 4) != 0)
printf("%s()-%d: mtod(sub_m) = %p\n", __FUNCTION__, __LINE__, mtod(sub_m, caddr_t));
#ifdef CONFIG_RX_INDICATE_QUEUE
IF_ENQUEUE(&precvpriv->rx_indicate_queue, sub_m);
if (_IF_QLEN(&precvpriv->rx_indicate_queue) <= 1) {
taskqueue_enqueue(taskqueue_thread, &precvpriv->rx_indicate_tasklet);
}
#else // CONFIG_RX_INDICATE_QUEUE
(*padapter->pifp->if_input)(padapter->pifp, sub_m);
#endif // CONFIG_RX_INDICATE_QUEUE
}
#endif //PLATFORM_FREEBSD
}
exit:
@ -3099,288 +3006,8 @@ exit:
rtw_free_recvframe(prframe, pfree_recv_queue);//free this recv_frame
return ret;
#else // || defined (PLATFORM_LINUX) || defined (PLATFORM_FREEBSD)
unsigned char *ptr, *pdata, *pbuf, *psnap_type;
union recv_frame *pnrframe, *pnrframe_new;
int a_len, mv_len, padding_len;
u16 eth_type, type_len;
u8 bsnaphdr;
struct ieee80211_snap_hdr *psnap;
struct _vlan *pvlan;
struct recv_priv *precvpriv = &padapter->recvpriv;
_queue *pfree_recv_queue = &(precvpriv->free_recv_queue);
int ret = _SUCCESS;
a_len = prframe->u.hdr.len - prframe->u.hdr.attrib.hdrlen;
recvframe_pull(prframe, prframe->u.hdr.attrib.hdrlen);
if(prframe->u.hdr.attrib.iv_len >0)
{
recvframe_pull(prframe, prframe->u.hdr.attrib.iv_len);
}
pdata = prframe->u.hdr.rx_data;
prframe->u.hdr.len=0;
pnrframe = prframe;
do{
mv_len=0;
pnrframe->u.hdr.rx_data = pnrframe->u.hdr.rx_tail = pdata;
ptr = pdata;
_rtw_memcpy(pnrframe->u.hdr.attrib.dst, ptr, ETH_ALEN);
ptr+=ETH_ALEN;
_rtw_memcpy(pnrframe->u.hdr.attrib.src, ptr, ETH_ALEN);
ptr+=ETH_ALEN;
_rtw_memcpy(&type_len, ptr, 2);
type_len= ntohs((unsigned short )type_len);
ptr +=2;
mv_len += ETH_HLEN;
recvframe_put(pnrframe, type_len+ETH_HLEN);//update tail;
if(pnrframe->u.hdr.rx_data >= pnrframe->u.hdr.rx_tail || type_len<8)
{
//panic("pnrframe->u.hdr.rx_data >= pnrframe->u.hdr.rx_tail || type_len<8\n");
rtw_free_recvframe(pnrframe, pfree_recv_queue);
goto exit;
}
psnap=(struct ieee80211_snap_hdr *)(ptr);
psnap_type=ptr+SNAP_SIZE;
if (psnap->dsap==0xaa && psnap->ssap==0xaa && psnap->ctrl==0x03)
{
if ( _rtw_memcmp(psnap->oui, oui_rfc1042, WLAN_IEEE_OUI_LEN))
{
bsnaphdr=_TRUE;//wlan_pkt_format = WLAN_PKT_FORMAT_SNAP_RFC1042;
}
else if (_rtw_memcmp(psnap->oui, SNAP_HDR_APPLETALK_DDP, WLAN_IEEE_OUI_LEN) &&
_rtw_memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_DDP, 2) )
{
bsnaphdr=_TRUE; //wlan_pkt_format = WLAN_PKT_FORMAT_APPLETALK;
}
else if (_rtw_memcmp( psnap->oui, oui_8021h, WLAN_IEEE_OUI_LEN))
{
bsnaphdr=_TRUE; //wlan_pkt_format = WLAN_PKT_FORMAT_SNAP_TUNNEL;
}
else
{
RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("drop pkt due to invalid frame format!\n"));
//KeBugCheckEx(0x87123333, 0xe0, 0x4c, 0x87, 0xdd);
//panic("0x87123333, 0xe0, 0x4c, 0x87, 0xdd\n");
rtw_free_recvframe(pnrframe, pfree_recv_queue);
goto exit;
}
}
else
{
bsnaphdr=_FALSE;//wlan_pkt_format = WLAN_PKT_FORMAT_OTHERS;
}
ptr += (bsnaphdr?SNAP_SIZE:0);
_rtw_memcpy(&eth_type, ptr, 2);
eth_type= ntohs((unsigned short )eth_type); //pattrib->ether_type
mv_len+= 2+(bsnaphdr?SNAP_SIZE:0);
ptr += 2;//now move to iphdr;
pvlan = NULL;
if(eth_type == 0x8100) //vlan
{
pvlan = (struct _vlan *)ptr;
ptr+=4;
mv_len+=4;
}
if(eth_type==0x0800)//ip
{
struct iphdr* piphdr = (struct iphdr*)ptr;
if (piphdr->protocol == 0x06)
{
RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("@@@===recv tcp len:%d @@@===\n", pnrframe->u.hdr.len));
}
}
#ifdef PLATFORM_OS_XP
else
{
NDIS_PACKET_8021Q_INFO VlanPriInfo;
UINT32 UserPriority = pnrframe->u.hdr.attrib.priority;
UINT32 VlanID = (pvlan!=NULL ? get_vlan_id(pvlan) : 0 );
VlanPriInfo.Value = // Get current value.
NDIS_PER_PACKET_INFO_FROM_PACKET(pnrframe->u.hdr.pkt, Ieee8021QInfo);
VlanPriInfo.TagHeader.UserPriority = UserPriority;
VlanPriInfo.TagHeader.VlanId = VlanID;
VlanPriInfo.TagHeader.CanonicalFormatId = 0; // Should be zero.
VlanPriInfo.TagHeader.Reserved = 0; // Should be zero.
NDIS_PER_PACKET_INFO_FROM_PACKET(pnrframe->u.hdr.pkt, Ieee8021QInfo) = VlanPriInfo.Value;
}
#endif //PLATFORM_OS_XP
pbuf = recvframe_pull(pnrframe, (mv_len-sizeof(struct ethhdr)));
_rtw_memcpy(pbuf, pnrframe->u.hdr.attrib.dst, ETH_ALEN);
_rtw_memcpy(pbuf+ETH_ALEN, pnrframe->u.hdr.attrib.src, ETH_ALEN);
eth_type = htons((unsigned short)eth_type) ;
_rtw_memcpy(pbuf+12, &eth_type, 2);
padding_len = (4) - ((type_len + ETH_HLEN)&(4-1));
a_len -= (type_len + ETH_HLEN + padding_len) ;
#if 0
if(a_len > ETH_HLEN)
{
pnrframe_new = rtw_alloc_recvframe(pfree_recv_queue);
if(pnrframe_new)
{
_pkt *pskb_copy;
unsigned int copy_len = pnrframe->u.hdr.len;
_rtw_init_listhead(&pnrframe_new->u.hdr.list);
pskb_copy = rtw_skb_alloc(copy_len+64);
if(pskb_copy==NULL)
{
DBG_871X("amsdu_to_msdu:can not all(ocate memory for skb copy\n");
}
pnrframe_new->u.hdr.pkt = pskb_copy;
_rtw_memcpy(pskb_copy->data, pnrframe->u.hdr.rx_data, copy_len);
pnrframe_new->u.hdr.rx_data = pnrframe->u.hdr.rx_data;
pnrframe_new->u.hdr.rx_tail = pnrframe->u.hdr.rx_data + copy_len;
if ((padapter->bDriverStopped ==_FALSE)&&( padapter->bSurpriseRemoved==_FALSE))
{
rtw_recv_indicatepkt(padapter, pnrframe_new);//indicate this recv_frame
}
else
{
rtw_free_recvframe(pnrframe_new, pfree_recv_queue);//free this recv_frame
}
}
else
{
DBG_871X("amsdu_to_msdu:can not allocate memory for pnrframe_new\n");
}
}
else
{
if ((padapter->bDriverStopped ==_FALSE)&&( padapter->bSurpriseRemoved==_FALSE))
{
rtw_recv_indicatepkt(padapter, pnrframe);//indicate this recv_frame
}
else
{
rtw_free_recvframe(pnrframe, pfree_recv_queue);//free this recv_frame
}
pnrframe = NULL;
}
#else // 0
//padding_len = (4) - ((type_len + ETH_HLEN)&(4-1));
//a_len -= (type_len + ETH_HLEN + padding_len) ;
pnrframe_new = NULL;
if(a_len > ETH_HLEN)
{
pnrframe_new = rtw_alloc_recvframe(pfree_recv_queue);
if(pnrframe_new)
{
//pnrframe_new->u.hdr.precvbuf = precvbuf;//precvbuf is assigned before call rtw_init_recvframe()
//rtw_init_recvframe(pnrframe_new, precvpriv);
{
#ifdef PLATFORM_LINUX
_pkt *pskb = pnrframe->u.hdr.pkt;
#endif //PLATFORM_LINUX
_rtw_init_listhead(&pnrframe_new->u.hdr.list);
pnrframe_new->u.hdr.len=0;
#ifdef PLATFORM_LINUX
if(pskb)
{
pnrframe_new->u.hdr.pkt = rtw_skb_clone(pskb);
}
#endif //PLATFORM_LINUX
}
pdata += (type_len + ETH_HLEN + padding_len);
pnrframe_new->u.hdr.rx_head = pnrframe_new->u.hdr.rx_data = pnrframe_new->u.hdr.rx_tail = pdata;
pnrframe_new->u.hdr.rx_end = pdata + a_len + padding_len;//
}
else
{
//panic("pnrframe_new=%x\n", pnrframe_new);
}
}
if ((padapter->bDriverStopped ==_FALSE)&&( padapter->bSurpriseRemoved==_FALSE) )
{
rtw_recv_indicatepkt(padapter, pnrframe);//indicate this recv_frame
}
else
{
rtw_free_recvframe(pnrframe, pfree_recv_queue);//free this recv_frame
}
pnrframe = NULL;
if(pnrframe_new)
{
pnrframe = pnrframe_new;
}
#endif // end defined (PLATFORM_LINUX) || defined (PLATFORM_FREEBSD)
}while(pnrframe);
exit:
return ret;
#endif
}
int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num);
int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num)
{
u8 wsize = preorder_ctrl->wsize_b;

View file

@ -973,13 +973,11 @@ static void next_key(u8 *key, sint round);
static void byte_sub(u8 *in, u8 *out);
static void shift_row(u8 *in, u8 *out);
static void mix_column(u8 *in, u8 *out);
#ifndef PLATFORM_FREEBSD
static void add_round_key( u8 *shiftrow_in,
u8 *mcol_in,
u8 *block_in,
sint round,
u8 *out);
#endif //PLATFORM_FREEBSD
static void aes128k128d(u8 *key, u8 *data, u8 *ciphertext);
@ -2195,7 +2193,6 @@ BIP_exit:
}
#endif //CONFIG_IEEE80211W
#ifndef PLATFORM_FREEBSD
/* compress 512-bits */
static int sha256_compress(struct sha256_state *md, unsigned char *buf)
{
@ -2461,7 +2458,6 @@ static void hmac_sha256_vector(u8 *key, size_t key_len, size_t num_elem,
_len[1] = 32;
sha256_vector(2, _addr, _len, mac);
}
#endif //PLATFORM_FREEBSD
/**
* sha256_prf - SHA256-based Pseudo-Random Function (IEEE 802.11r, 8.5.1.5.2)
* @key: Key for PRF
@ -2475,7 +2471,6 @@ static void hmac_sha256_vector(u8 *key, size_t key_len, size_t num_elem,
* This function is used to derive new, cryptographically separate keys from a
* given key.
*/
#ifndef PLATFORM_FREEBSD //Baron
static void sha256_prf(u8 *key, size_t key_len, char *label,
u8 *data, size_t data_len, u8 *buf, size_t buf_len)
{
@ -2512,7 +2507,6 @@ static void sha256_prf(u8 *key, size_t key_len, char *label,
counter++;
}
}
#endif //PLATFORM_FREEBSD Baron
/* AES tables*/
const u32 Te0[256] = {
@ -2691,7 +2685,6 @@ const u8 rcons[] = {
*
* @return the number of rounds for the given cipher key size.
*/
#ifndef PLATFORM_FREEBSD //Baron
static void rijndaelKeySetupEnc(u32 rk[/*44*/], const u8 cipherKey[])
{
int i;
@ -2907,7 +2900,6 @@ int omac1_aes_128(u8 *key, u8 *data, size_t data_len, u8 *mac)
{
return omac1_aes_128_vector(key, 1, &data, &data_len, mac);
}
#endif //PLATFORM_FREEBSD Baron
#ifdef CONFIG_TDLS
void wpa_tdls_generate_tpk(_adapter *padapter, struct sta_info *psta)
@ -3082,9 +3074,6 @@ int tdls_verify_mic(u8 *kck, u8 trans_seq,
#ifdef PLATFORM_LINUX
void rtw_use_tkipkey_handler(void *FunctionContext)
#endif
#ifdef PLATFORM_FREEBSD
void rtw_use_tkipkey_handler(void *FunctionContext)
#endif
{
_adapter *padapter = (_adapter *)FunctionContext;
@ -3093,14 +3082,6 @@ _func_enter_;
RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler ^^^\n"));
/*
if(padapter->bDriverStopped ||padapter->bSurpriseRemoved){
RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler (padapter->bDriverStopped %d)(padapter->bSurpriseRemoved %d)^^^\n",padapter->bDriverStopped,padapter->bSurpriseRemoved));
return;
}
*/
padapter->securitypriv.busetkipkey=_TRUE;
RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler padapter->securitypriv.busetkipkey=%d^^^\n",padapter->securitypriv.busetkipkey));