VOID dump_rtmp_txwi(RTMP_ADAPTER *pAd, TXWI_STRUC *pTxWI) { struct _TXWI_OMAC *txwi_o = (struct _TXWI_OMAC *)pTxWI; ASSERT((sizeof(struct _TXWI_OMAC) == pAd->chipCap.TXWISize)); if (pAd->chipCap.TXWISize != (sizeof(struct _TXWI_OMAC))) DBGPRINT(RT_DEBUG_TRACE, ("%s():sizeof(struct _TXWI_OMAC)=%d, pAd->chipCap.TXWISize=%d\n", __FUNCTION__, sizeof(struct _TXWI_OMAC), pAd->chipCap.TXWISize)); DBGPRINT(RT_DEBUG_OFF, ("\tPHYMODE=%d(%s)\n", txwi_o->PHYMODE, get_phymode_str(txwi_o->PHYMODE))); DBGPRINT(RT_DEBUG_OFF, ("\tiTxBF=%d\n", txwi_o->iTxBF)); DBGPRINT(RT_DEBUG_OFF, ("\tSounding=%d\n", txwi_o->Sounding)); DBGPRINT(RT_DEBUG_OFF, ("\teTxBF=%d\n", txwi_o->eTxBF)); DBGPRINT(RT_DEBUG_OFF, ("\tSTBC=%d\n", txwi_o->STBC)); DBGPRINT(RT_DEBUG_OFF, ("\tShortGI=%d\n", txwi_o->ShortGI)); DBGPRINT(RT_DEBUG_OFF, ("\tBW=%d(%sMHz)\n", txwi_o->BW, get_bw_str(txwi_o->BW))); DBGPRINT(RT_DEBUG_OFF, ("\tMCS=%d\n", txwi_o->MCS)); DBGPRINT(RT_DEBUG_OFF, ("\tTxOP=%d(%s)\n", txwi_o->txop, TXWI_TXOP_STR(txwi_o->txop))); DBGPRINT(RT_DEBUG_OFF, ("\tMpduDensity=%d\n", txwi_o->MpduDensity)); DBGPRINT(RT_DEBUG_OFF, ("\tAMPDU=%d\n", txwi_o->AMPDU)); DBGPRINT(RT_DEBUG_OFF, ("\tTS=%d\n", txwi_o->TS)); DBGPRINT(RT_DEBUG_OFF, ("\tCF-ACK=%d\n", txwi_o->CFACK)); DBGPRINT(RT_DEBUG_OFF, ("\tMIMO-PS=%d\n", txwi_o->MIMOps)); DBGPRINT(RT_DEBUG_OFF, ("\tFRAG=%d\n", txwi_o->FRAG)); DBGPRINT(RT_DEBUG_OFF, ("\tPID=%d\n", txwi_o->PacketId)); DBGPRINT(RT_DEBUG_OFF, ("\tMPDUtotalByteCnt=%d\n", txwi_o->MPDUtotalByteCnt)); DBGPRINT(RT_DEBUG_OFF, ("\tWCID=%d\n", txwi_o->wcid)); DBGPRINT(RT_DEBUG_OFF, ("\tBAWinSize=%d\n", txwi_o->BAWinSize)); DBGPRINT(RT_DEBUG_OFF, ("\tNSEQ=%d\n", txwi_o->NSEQ)); DBGPRINT(RT_DEBUG_OFF, ("\tACK=%d\n", txwi_o->ACK)); }
VOID dump_rtmp_rxwi(RTMP_ADAPTER *pAd, RXWI_STRUC *pRxWI) { struct _RXWI_OMAC *rxwi_o = (struct _RXWI_OMAC *)pRxWI; ASSERT((sizeof(struct _RXWI_OMAC) == pAd->chipCap.RXWISize)); if (pAd->chipCap.RXWISize != (sizeof(struct _RXWI_OMAC))) DBGPRINT(RT_DEBUG_TRACE, ("%s():sizeof(struct _RXWI_OMAC)=%d, pAd->chipCap.RXWISize=%d\n", __FUNCTION__, sizeof(struct _RXWI_OMAC), pAd->chipCap.RXWISize)); DBGPRINT(RT_DEBUG_OFF, ("\tWCID=%d\n", rxwi_o->wcid)); DBGPRINT(RT_DEBUG_OFF, ("\tMPDUtotalByteCnt=%d\n", rxwi_o->MPDUtotalByteCnt)); DBGPRINT(RT_DEBUG_OFF, ("\tPhyMode=%d(%s)\n", rxwi_o->phy_mode, get_phymode_str(rxwi_o->phy_mode))); DBGPRINT(RT_DEBUG_OFF, ("\tMCS=%d\n", rxwi_o->mcs)); DBGPRINT(RT_DEBUG_OFF, ("\tBW=%d\n", rxwi_o->bw)); DBGPRINT(RT_DEBUG_OFF, ("\tSGI=%d\n", rxwi_o->sgi)); DBGPRINT(RT_DEBUG_OFF, ("\tSTBC=%d\n", rxwi_o->stbc)); DBGPRINT(RT_DEBUG_OFF, ("\tSequence=%d\n", rxwi_o->SEQUENCE)); DBGPRINT(RT_DEBUG_OFF, ("\tFRAG=%d\n", rxwi_o->FRAG)); DBGPRINT(RT_DEBUG_OFF, ("\tTID=%d\n", rxwi_o->tid)); DBGPRINT(RT_DEBUG_OFF, ("\tkey_idx=%d\n", rxwi_o->key_idx)); DBGPRINT(RT_DEBUG_OFF, ("\tBSS_IDX=%d\n", rxwi_o->bss_idx)); DBGPRINT(RT_DEBUG_OFF, ("\tRSSI=%d:%d:%d\n", rxwi_o->RSSI0, rxwi_o->RSSI1, rxwi_o->RSSI2)); DBGPRINT(RT_DEBUG_OFF, ("\tSNR=%d:%d:%d\n", rxwi_o->SNR0, rxwi_o->SNR1, rxwi_o->SNR2)); DBGPRINT(RT_DEBUG_OFF, ("\tFreqOffset=%d\n", rxwi_o->FOFFSET)); }
INT Show_WdsTable_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg) { INT i; #ifdef RTMP_MAC_PCI UCHAR QueIdx=0; #endif /* RTMP_MAC_PCI */ for(i = 0; i < MAX_WDS_ENTRY; i++) { DBGPRINT(RT_DEBUG_OFF, ("IF/WDS%d-%02x:%02x:%02x:%02x:%02x:%02x(%s) ,%s, KeyId=%d\n", i, PRINT_MAC(pAd->WdsTab.WdsEntry[i].PeerWdsAddr), pAd->WdsTab.WdsEntry[i].Valid == 1 ? "Valid" : "Invalid", GetEncryptType(pAd->WdsTab.WdsEntry[i].WepStatus), pAd->WdsTab.WdsEntry[i].KeyIdx)); if (pAd->WdsTab.WdsEntry[i].WdsKey.KeyLen > 0) hex_dump("Wds Key", pAd->WdsTab.WdsEntry[i].WdsKey.Key, pAd->WdsTab.WdsEntry[i].WdsKey.KeyLen); } #ifdef RTMP_MAC_PCI for (QueIdx=0; QueIdx < NUM_OF_TX_RING; QueIdx++) { DBGPRINT(RT_DEBUG_OFF, ("[Tx:%d]: SwFreeIdx=%d, CpuIdx=%d, DmaIdx=%d\n", QueIdx,pAd->TxRing[QueIdx].TxSwFreeIdx, pAd->TxRing[QueIdx].TxCpuIdx, pAd->TxRing[QueIdx].TxDmaIdx)); } DBGPRINT(RT_DEBUG_OFF, ("[Rx]: SwRedIdx=%d, CpuIdx=%d, DmaIdx=%d\n", pAd->RxRing.RxSwReadIdx, pAd->RxRing.RxCpuIdx, pAd->RxRing.RxDmaIdx)); #endif /* RTMP_MAC_PCI */ DBGPRINT(RT_DEBUG_OFF, ("\n%-19s%-4s%-4s%-4s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s\n", "MAC", "IDX", "AID", "PSM", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC")); for (i=0; i<MAX_LEN_OF_MAC_TABLE; i++) { PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i]; if (IS_ENTRY_WDS(pEntry)) { DBGPRINT(RT_DEBUG_OFF, ("%02X:%02X:%02X:%02X:%02X:%02X ", PRINT_MAC(pEntry->Addr))); DBGPRINT(RT_DEBUG_OFF,("%-4d", (int)pEntry->MatchWDSTabIdx)); DBGPRINT(RT_DEBUG_OFF, ("%-4d", (int)pEntry->Aid)); DBGPRINT(RT_DEBUG_OFF, ("%-4d", (int)pEntry->PsMode)); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi0)); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi1)); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi2)); DBGPRINT(RT_DEBUG_OFF, ("%-10s", get_phymode_str(pEntry->HTPhyMode.field.MODE))); DBGPRINT(RT_DEBUG_OFF, ("%-6s", get_bw_str(pEntry->HTPhyMode.field.BW))); DBGPRINT(RT_DEBUG_OFF, ("%-6d", pEntry->HTPhyMode.field.MCS)); DBGPRINT(RT_DEBUG_OFF, ("%-6d", pEntry->HTPhyMode.field.ShortGI)); DBGPRINT(RT_DEBUG_OFF, ("%-6d\n", pEntry->HTPhyMode.field.STBC)); } } return TRUE; }
INT Show_Repeater_Cli_Proc(RTMP_ADAPTER *pAd, RTMP_STRING *arg) { INT i; UINT32 RegValue; ULONG DataRate=0; if (!pAd->ApCfg.bMACRepeaterEn) return TRUE; printk("\n"); #ifdef DOT11_N_SUPPORT printk("HT Operating Mode : %d\n", pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode); printk("\n"); #endif /* DOT11_N_SUPPORT */ printk("\n%-19s%-4s%-4s%-4s%-4s%-8s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s%-7s%-7s\n", "MAC", "AID", "BSS", "PSM", "WMM", "MIMOPS", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC", "Idle", "Rate"); for (i = 0; i < MAX_LEN_OF_MAC_TABLE; i++) { PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i]; if (pEntry && IS_ENTRY_APCLI(pEntry)&& (pEntry->Sst == SST_ASSOC) && (pEntry->bReptCli)) { DataRate=0; getRate(pEntry->HTPhyMode, &DataRate); printk("%02X:%02X:%02X:%02X:%02X:%02X ", pEntry->ReptCliAddr[0], pEntry->ReptCliAddr[1], pEntry->ReptCliAddr[2], pEntry->ReptCliAddr[3], pEntry->ReptCliAddr[4], pEntry->ReptCliAddr[5]); printk("%-4d", (int)pEntry->Aid); printk("%-4d-%d", (int)pEntry->apidx, pEntry->func_tb_idx); printk("%-4d", (int)pEntry->PsMode); printk("%-4d", (int)CLIENT_STATUS_TEST_FLAG(pEntry, fCLIENT_STATUS_WMM_CAPABLE)); #ifdef DOT11_N_SUPPORT printk("%-8d", (int)pEntry->MmpsMode); #endif /* DOT11_N_SUPPORT */ printk("%-7d", pEntry->RssiSample.AvgRssi[0]); printk("%-7d", pEntry->RssiSample.AvgRssi[1]); printk("%-7d", pEntry->RssiSample.AvgRssi[2]); printk("%-10s", get_phymode_str(pEntry->HTPhyMode.field.MODE)); printk("%-6s", get_bw_str(pEntry->HTPhyMode.field.BW)); printk("%-6d", pEntry->HTPhyMode.field.MCS); printk("%-6d", pEntry->HTPhyMode.field.ShortGI); printk("%-6d", pEntry->HTPhyMode.field.STBC); printk("%-7d", (int)(pEntry->StaIdleTimeout - pEntry->NoDataIdleCount)); printk("%-7d", (int)DataRate); printk("%-10d, %d, %d%%\n", pEntry->DebugFIFOCount, pEntry->DebugTxCount, (pEntry->DebugTxCount) ? ((pEntry->DebugTxCount-pEntry->DebugFIFOCount)*100/pEntry->DebugTxCount) : 0); printk("\n"); } } return TRUE; }
INT Show_WdsTable_Proc(RTMP_ADAPTER *pAd, RTMP_STRING *arg) { INT i; for(i = 0; i < MAX_WDS_ENTRY; i++) { DBGPRINT(RT_DEBUG_OFF, ("IF/WDS%d-%02x:%02x:%02x:%02x:%02x:%02x(%s) ,%s, KeyId=%d\n", i, PRINT_MAC(pAd->WdsTab.WdsEntry[i].PeerWdsAddr), pAd->WdsTab.WdsEntry[i].Valid == 1 ? "Valid" : "Invalid", GetEncryptType(pAd->WdsTab.WdsEntry[i].wdev.WepStatus), pAd->WdsTab.WdsEntry[i].KeyIdx)); if (pAd->WdsTab.WdsEntry[i].WdsKey.KeyLen > 0) hex_dump("Wds Key", pAd->WdsTab.WdsEntry[i].WdsKey.Key, pAd->WdsTab.WdsEntry[i].WdsKey.KeyLen); } DBGPRINT(RT_DEBUG_OFF, ("\n%-19s%-4s%-4s%-4s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s\n", "MAC", "IDX", "AID", "PSM", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC")); for (i=0; i<MAX_LEN_OF_MAC_TABLE; i++) { PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i]; if (IS_ENTRY_WDS(pEntry)) { DBGPRINT(RT_DEBUG_OFF, ("%02X:%02X:%02X:%02X:%02X:%02X ", PRINT_MAC(pEntry->Addr))); DBGPRINT(RT_DEBUG_OFF,("%-4d", (int)pEntry->func_tb_idx)); DBGPRINT(RT_DEBUG_OFF, ("%-4d", (int)pEntry->Aid)); DBGPRINT(RT_DEBUG_OFF, ("%-4d", (int)pEntry->PsMode)); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi[0])); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi[1])); DBGPRINT(RT_DEBUG_OFF, ("%-7d", pEntry->RssiSample.AvgRssi[2])); DBGPRINT(RT_DEBUG_OFF, ("%-10s", get_phymode_str(pEntry->HTPhyMode.field.MODE))); DBGPRINT(RT_DEBUG_OFF, ("%-6s", get_bw_str(pEntry->HTPhyMode.field.BW))); DBGPRINT(RT_DEBUG_OFF, ("%-6d", pEntry->HTPhyMode.field.MCS)); DBGPRINT(RT_DEBUG_OFF, ("%-6d", pEntry->HTPhyMode.field.ShortGI)); DBGPRINT(RT_DEBUG_OFF, ("%-6d\n", pEntry->HTPhyMode.field.STBC)); } } return TRUE; }
INT Show_Repeater_Cli_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg) { INT i; UINT32 RegValue; UINT32 DataRate=0; if (!pAd->ApCfg.bMACRepeaterEn) return TRUE; printk("\n"); RTMP_IO_READ32(pAd, BKOFF_SLOT_CFG, &RegValue); printk("BackOff Slot : %s slot time, BKOFF_SLOT_CFG(0x1104) = 0x%08x\n", OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_SHORT_SLOT_INUSED) ? "short" : "long", RegValue); #ifdef DOT11_N_SUPPORT printk("HT Operating Mode : %d\n", pAd->CommonCfg.AddHTInfo.AddHtInfo2.OperaionMode); printk("\n"); #endif /* DOT11_N_SUPPORT */ printk("\n%-19s%-4s%-4s%-4s%-4s%-8s%-7s%-7s%-7s%-10s%-6s%-6s%-6s%-6s%-7s%-7s\n", "MAC", "AID", "BSS", "PSM", "WMM", "MIMOPS", "RSSI0", "RSSI1", "RSSI2", "PhMd", "BW", "MCS", "SGI", "STBC", "Idle", "Rate"); for (i = MAX_NUMBER_OF_MAC; i < MAX_NUMBER_OF_MAC + ((MAX_EXT_MAC_ADDR_SIZE + 1) * MAX_APCLI_NUM); i++) { PMAC_TABLE_ENTRY pEntry = &pAd->MacTab.Content[i]; if (pEntry && IS_ENTRY_APCLI(pEntry)&& (pEntry->Sst == SST_ASSOC) && (pEntry->bReptCli)) { DataRate=0; RtmpDrvRateGet(pAd, pEntry->HTPhyMode.field.MODE, pEntry->HTPhyMode.field.ShortGI, pEntry->HTPhyMode.field.BW,pEntry->HTPhyMode.field.MCS, newRateGetAntenna(pEntry->HTPhyMode.field.MCS, pEntry->HTPhyMode.field.MODE),&DataRate); DataRate /= 500000; DataRate /= 2; printk("%02X:%02X:%02X:%02X:%02X:%02X ", pEntry->ReptCliAddr[0], pEntry->ReptCliAddr[1], pEntry->ReptCliAddr[2], pEntry->ReptCliAddr[3], pEntry->ReptCliAddr[4], pEntry->ReptCliAddr[5]); printk("%-4d", (int)pEntry->Aid); printk("%-4d", (int)pEntry->apidx); printk("%-4d", (int)pEntry->PsMode); printk("%-4d", (int)CLIENT_STATUS_TEST_FLAG(pEntry, fCLIENT_STATUS_WMM_CAPABLE)); #ifdef DOT11_N_SUPPORT printk("%-8d", (int)pEntry->MmpsMode); #endif /* DOT11_N_SUPPORT */ printk("%-7d", pEntry->RssiSample.AvgRssi0); printk("%-7d", pEntry->RssiSample.AvgRssi1); printk("%-7d", pEntry->RssiSample.AvgRssi2); printk("%-10s", get_phymode_str(pEntry->HTPhyMode.field.MODE)); printk("%-6s", get_bw_str(pEntry->HTPhyMode.field.BW)); printk("%-6d", pEntry->HTPhyMode.field.MCS); printk("%-6d", pEntry->HTPhyMode.field.ShortGI); printk("%-6d", pEntry->HTPhyMode.field.STBC); printk("%-7d", (int)(pEntry->StaIdleTimeout - pEntry->NoDataIdleCount)); printk("%-7d", (int)DataRate); printk("%-10d, %d, %d%%\n", pEntry->DebugFIFOCount, pEntry->DebugTxCount, (pEntry->DebugTxCount) ? ((pEntry->DebugTxCount-pEntry->DebugFIFOCount)*100/pEntry->DebugTxCount) : 0); printk("\n"); } } return TRUE; }