Staging: bcm: Qos.c: Line length / Whitespace cleanup in ClassifyPacket()

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Matthias Beyer
2014-07-30 17:14:23 -07:00
committed by Greg Kroah-Hartman
parent 34cad16c84
commit 894bd303e3
+148 -45
View File
@@ -607,26 +607,51 @@ USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb)
EThCSGetPktInfo(Adapter, pvEThPayload, &stEthCsPktInfo);
switch (stEthCsPktInfo.eNwpktEthFrameType) {
case eEth802LLCFrame:
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : 802LLCFrame\n");
pIpHeader = pvEThPayload + sizeof(struct bcm_eth_llc_frame);
break;
case eEth802LLCSNAPFrame:
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : 802LLC SNAP Frame\n");
pIpHeader = pvEThPayload + sizeof(struct bcm_eth_llc_snap_frame);
break;
case eEth802QVLANFrame:
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : 802.1Q VLANFrame\n");
pIpHeader = pvEThPayload + sizeof(struct bcm_eth_q_frame);
break;
case eEthOtherFrame:
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : ETH Other Frame\n");
pIpHeader = pvEThPayload + sizeof(struct bcm_ethernet2_frame);
break;
default:
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : Unrecognized ETH Frame\n");
pIpHeader = pvEThPayload + sizeof(struct bcm_ethernet2_frame);
break;
case eEth802LLCFrame:
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : 802LLCFrame\n");
pIpHeader = pvEThPayload +
sizeof(struct bcm_eth_llc_frame);
break;
case eEth802LLCSNAPFrame:
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : 802LLC SNAP Frame\n");
pIpHeader = pvEThPayload +
sizeof(struct bcm_eth_llc_snap_frame);
break;
case eEth802QVLANFrame:
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : 802.1Q VLANFrame\n");
pIpHeader = pvEThPayload +
sizeof(struct bcm_eth_q_frame);
break;
case eEthOtherFrame:
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : ETH Other Frame\n");
pIpHeader = pvEThPayload +
sizeof(struct bcm_ethernet2_frame);
break;
default:
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : Unrecognized ETH Frame\n");
pIpHeader = pvEThPayload +
sizeof(struct bcm_ethernet2_frame);
break;
}
if (stEthCsPktInfo.eNwpktIPFrameType == eIPv4Packet) {
@@ -636,15 +661,27 @@ USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb)
if (bFragmentedPkt) {
/* Fragmented Packet. Get Frag Classifier Entry. */
pstClassifierRule = GetFragIPClsEntry(Adapter, pIpHeader->id, pIpHeader->saddr);
pstClassifierRule = GetFragIPClsEntry(Adapter,
pIpHeader->id,
pIpHeader->saddr);
if (pstClassifierRule) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "It is next Fragmented pkt");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"It is next Fragmented pkt");
bClassificationSucceed = TRUE;
}
if (!(ntohs(pIpHeader->frag_off) & IP_MF)) {
/* Fragmented Last packet . Remove Frag Classifier Entry */
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "This is the last fragmented Pkt");
DelFragIPClsEntry(Adapter, pIpHeader->id, pIpHeader->saddr);
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"This is the last fragmented Pkt");
DelFragIPClsEntry(Adapter,
pIpHeader->id,
pIpHeader->saddr);
}
}
}
@@ -660,7 +697,12 @@ USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb)
bClassificationSucceed = false;
continue;
}
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Adapter->PackInfo[%d].bvalid=True\n", uiLoopIndex);
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"Adapter->PackInfo[%d].bvalid=True\n",
uiLoopIndex);
if (0 == Adapter->astClassifierTable[uiLoopIndex].ucDirection) {
bClassificationSucceed = false; /* cannot be processed for classification. */
@@ -671,71 +713,131 @@ USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb)
uiSfIndex = SearchSfid(Adapter, pstClassifierRule->ulSFID);
if (uiSfIndex >= NO_OF_QUEUES) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Queue Not Valid. SearchSfid for this classifier Failed\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"Queue Not Valid. SearchSfid for this classifier Failed\n");
continue;
}
if (Adapter->PackInfo[uiSfIndex].bEthCSSupport) {
if (eEthUnsupportedFrame == stEthCsPktInfo.eNwpktEthFrameType) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, " ClassifyPacket : Packet Not a Valid Supported Ethernet Frame\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
" ClassifyPacket : Packet Not a Valid Supported Ethernet Frame\n");
bClassificationSucceed = false;
continue;
}
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Performing ETH CS Classification on Classifier Rule ID : %x Service Flow ID : %lx\n", pstClassifierRule->uiClassifierRuleIndex, Adapter->PackInfo[uiSfIndex].ulSFID);
bClassificationSucceed = EThCSClassifyPkt(Adapter, skb, &stEthCsPktInfo, pstClassifierRule, Adapter->PackInfo[uiSfIndex].bEthCSSupport);
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"Performing ETH CS Classification on Classifier Rule ID : %x Service Flow ID : %lx\n",
pstClassifierRule->uiClassifierRuleIndex,
Adapter->PackInfo[uiSfIndex].ulSFID);
bClassificationSucceed = EThCSClassifyPkt(Adapter,
skb,
&stEthCsPktInfo,
pstClassifierRule,
Adapter->PackInfo[uiSfIndex].bEthCSSupport);
if (!bClassificationSucceed) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "ClassifyPacket : Ethernet CS Classification Failed\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"ClassifyPacket : Ethernet CS Classification Failed\n");
continue;
}
} else { /* No ETH Supported on this SF */
if (eEthOtherFrame != stEthCsPktInfo.eNwpktEthFrameType) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, " ClassifyPacket : Packet Not a 802.3 Ethernet Frame... hence not allowed over non-ETH CS SF\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
" ClassifyPacket : Packet Not a 802.3 Ethernet Frame... hence not allowed over non-ETH CS SF\n");
bClassificationSucceed = false;
continue;
}
}
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Proceeding to IP CS Clasification");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"Proceeding to IP CS Clasification");
if (Adapter->PackInfo[uiSfIndex].bIPCSSupport) {
if (stEthCsPktInfo.eNwpktIPFrameType == eNonIPPacket) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, " ClassifyPacket : Packet is Not an IP Packet\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
" ClassifyPacket : Packet is Not an IP Packet\n");
bClassificationSucceed = false;
continue;
}
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "Dump IP Header :\n");
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"Dump IP Header :\n");
DumpFullPacket((PUCHAR)pIpHeader, 20);
if (stEthCsPktInfo.eNwpktIPFrameType == eIPv4Packet)
bClassificationSucceed = IpVersion4(Adapter, pIpHeader, pstClassifierRule);
bClassificationSucceed = IpVersion4(Adapter,
pIpHeader,
pstClassifierRule);
else if (stEthCsPktInfo.eNwpktIPFrameType == eIPv6Packet)
bClassificationSucceed = IpVersion6(Adapter, pIpHeader, pstClassifierRule);
bClassificationSucceed = IpVersion6(Adapter,
pIpHeader,
pstClassifierRule);
}
}
if (bClassificationSucceed == TRUE) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "CF id : %d, SF ID is =%lu", pstClassifierRule->uiClassifierRuleIndex, pstClassifierRule->ulSFID);
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"CF id : %d, SF ID is =%lu",
pstClassifierRule->uiClassifierRuleIndex,
pstClassifierRule->ulSFID);
/* Store The matched Classifier in SKB */
*((UINT32 *)(skb->cb)+SKB_CB_CLASSIFICATION_OFFSET) = pstClassifierRule->uiClassifierRuleIndex;
if ((TCP == pIpHeader->protocol) && !bFragmentedPkt && (ETH_AND_IP_HEADER_LEN + TCP_HEADER_LEN <= skb->len)) {
*((UINT32 *)(skb->cb)+SKB_CB_CLASSIFICATION_OFFSET) =
pstClassifierRule->uiClassifierRuleIndex;
if ((TCP == pIpHeader->protocol) && !bFragmentedPkt &&
(ETH_AND_IP_HEADER_LEN + TCP_HEADER_LEN <=
skb->len)) {
IpHeaderLength = pIpHeader->ihl;
pTcpHeader = (struct bcm_tcp_header *)(((PUCHAR)pIpHeader)+(IpHeaderLength*4));
TcpHeaderLength = GET_TCP_HEADER_LEN(pTcpHeader->HeaderLength);
pTcpHeader =
(struct bcm_tcp_header *)(((PUCHAR)pIpHeader) +
(IpHeaderLength*4));
TcpHeaderLength = GET_TCP_HEADER_LEN(pTcpHeader->HeaderLength);
if ((pTcpHeader->ucFlags & TCP_ACK) &&
(ntohs(pIpHeader->tot_len) == (IpHeaderLength*4)+(TcpHeaderLength*4)))
*((UINT32 *) (skb->cb) + SKB_CB_TCPACK_OFFSET) = TCP_ACK;
(ntohs(pIpHeader->tot_len) ==
(IpHeaderLength*4)+(TcpHeaderLength*4)))
*((UINT32 *) (skb->cb) + SKB_CB_TCPACK_OFFSET) =
TCP_ACK;
}
usIndex = SearchSfid(Adapter, pstClassifierRule->ulSFID);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV4_DBG, DBG_LVL_ALL, "index is =%d", usIndex);
BCM_DEBUG_PRINT(Adapter,
DBG_TYPE_TX,
IPV4_DBG,
DBG_LVL_ALL,
"index is =%d",
usIndex);
/*
* If this is the first fragment of a Fragmented pkt,
@@ -752,7 +854,8 @@ USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb)
stFragPktInfo.bUsed = TRUE;
stFragPktInfo.ulSrcIpAddress = pIpHeader->saddr;
stFragPktInfo.usIpIdentification = pIpHeader->id;
stFragPktInfo.pstMatchedClassifierEntry = pstClassifierRule;
stFragPktInfo.pstMatchedClassifierEntry =
pstClassifierRule;
stFragPktInfo.bOutOfOrderFragment = false;
AddFragIPClsEntry(Adapter, &stFragPktInfo);
}