static INT CFG80211_PacketSend(struct sk_buff *pPktSrc, struct net_device *pDev, RTMP_NET_PACKET_TRANSMIT Func) { struct rtmp_adapter *pAd; pAd = RTMP_OS_NETDEV_GET_PRIV(pDev); ASSERT(pAd); /* To Indicate from Which VIF */ switch (pDev->ieee80211_ptr->iftype) { case RT_CMD_80211_IFTYPE_AP: //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_AP; RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_GO:; //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_P2P_GO; if(!OPSTATUS_TEST_FLAG(pAd, fOP_AP_STATUS_MEDIA_STATE_CONNECTED)) { DBGPRINT(RT_DEBUG_TRACE, ("Drop the Packet due P2P GO not in ready state\n")); dev_kfree_skb_any(pPktSrc); return 0; } RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_CLIENT: //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_P2P_CLI; RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_STATION: default: DBGPRINT(RT_DEBUG_TRACE, ("Unknown CFG80211 I/F Type(%d)\n", pDev->ieee80211_ptr->iftype)); dev_kfree_skb_any(pPktSrc); return 0; } DBGPRINT(RT_DEBUG_INFO, ("CFG80211 Packet Type [%s](%d)\n", pDev->name, pDev->ieee80211_ptr->iftype)); RTMP_SET_PACKET_NET_DEVICE_MBSSID(pPktSrc, MAIN_MBSSID); return Func(pPktSrc); }
static INT CFG80211_PacketSend(PNDIS_PACKET pPktSrc, PNET_DEV pDev, RTMP_NET_PACKET_TRANSMIT Func) { PRTMP_ADAPTER pAd; pAd = RTMP_OS_NETDEV_GET_PRIV(pDev); ASSERT(pAd); /* To Indicate from Which VIF */ switch (pDev->ieee80211_ptr->iftype) { case RT_CMD_80211_IFTYPE_AP: //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_AP; RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_GO:; //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_P2P_GO; if(!OPSTATUS_TEST_FLAG(pAd, fOP_AP_STATUS_MEDIA_STATE_CONNECTED)) { DBGPRINT(RT_DEBUG_TRACE, ("Drop the Packet due P2P GO not in ready state\n")); RELEASE_NDIS_PACKET(pAd, pPktSrc, NDIS_STATUS_FAILURE); return 0; } RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_CLIENT: //minIdx = MIN_NET_DEVICE_FOR_CFG80211_VIF_P2P_CLI; RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_STATION: default: DBGPRINT(RT_DEBUG_TRACE, ("Unknown CFG80211 I/F Type(%d)\n", pDev->ieee80211_ptr->iftype)); RELEASE_NDIS_PACKET(pAd, pPktSrc, NDIS_STATUS_FAILURE); return 0; } DBGPRINT(RT_DEBUG_INFO, ("CFG80211 Packet Type [%s](%d)\n", pDev->name, pDev->ieee80211_ptr->iftype)); RTMP_SET_PACKET_NET_DEVICE_MBSSID(pPktSrc, MAIN_MBSSID); return Func(RTPKT_TO_OSPKT(pPktSrc)); }
static INT CFG80211_PacketSend(PNDIS_PACKET pPktSrc, PNET_DEV pDev, RTMP_NET_PACKET_TRANSMIT Func) { PRTMP_ADAPTER pAd; pAd = RTMP_OS_NETDEV_GET_PRIV(pDev); ASSERT(pAd); /* To Indicate from Which VIF */ switch (pDev->ieee80211_ptr->iftype) { case RT_CMD_80211_IFTYPE_AP: RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_GO:; if(!OPSTATUS_TEST_FLAG(pAd, fOP_AP_STATUS_MEDIA_STATE_CONNECTED)) { MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_TRACE, ("Drop the Packet due P2P GO not in ready state\n")); RELEASE_NDIS_PACKET(pAd, pPktSrc, NDIS_STATUS_FAILURE); return 0; } RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); break; case RT_CMD_80211_IFTYPE_P2P_CLIENT: case RT_CMD_80211_IFTYPE_STATION: RTMP_SET_PACKET_OPMODE(pPktSrc, OPMODE_AP); //printk("%s: tx ==> %d\n", __FUNCTION__, RTMP_GET_PACKET_OPMODE(pPktSrc)); break; default: MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_TRACE, ("Unknown CFG80211 I/F Type(%d)\n", pDev->ieee80211_ptr->iftype)); RELEASE_NDIS_PACKET(pAd, pPktSrc, NDIS_STATUS_FAILURE); return 0; } MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_INFO, ("CFG80211 Packet Type [%s](%d)\n", pDev->name, pDev->ieee80211_ptr->iftype)); return Func(RTPKT_TO_OSPKT(pPktSrc)); }