qcacmn: Add cdp support four address raw mode simulation

Added cdp interface support for raw mode simulation code to support 4 address
frames. This function finds the fourth address of the packet.

Change-Id: Ia684cd4c8ba7be3e52283bda7a84fc612d924a38
CRs-Fixed: 2003389
This commit is contained in:
Venkateswara Swamy Bandaru
2017-02-20 18:28:40 +05:30
committed by qcabuildsw
parent e41bc4aa32
commit 45f85569ac
3 changed files with 20 additions and 21 deletions

View File

@@ -42,34 +42,31 @@ static inline int cdp_get_nwifi_mode(ol_txrx_soc_handle soc,
return soc->ops->raw_ops->txrx_get_nwifi_mode(vdev);
return 0;
}
/* Questionable -- should this be in OL AND/OR is this used? */
/* Called by ol_tx_ll_umac_raw_process() */
/**
* @brief encap nbuf(s) from Ethernet II format to 802.11 Raw format
* @details
* Note that in the case of IP fragments, the function takes two fragments at a
* time and creates an A-MSDU. If it has seen the first of such fragments, it
* returns 0 to indicate that it needs to consume one more. In this case, the
* caller shouldn't pass the nbuf to lower layers.
* The function is simple and doesn't dynamically take decisions on A-MSDU
* formation. It can be extended to pack more fragments into an A-MSDU if
* required, but in this case there can be greater losses due to the
* environment. The objective of the function is only to simulate regular
* scatter/gather.
* @brief finds the ast entry for the packet
* @details: Finds the ast entry i.e 4th address for the packet based on the
* details in the netbuf.
*
* @param vdev - the data virtual device object
* @param pnbuf - pointer to nbuf
* @param raw_ast - pointer to fill ast information
*
* @return - 0 on success, -1 on error, 1 if more nbufs need to be consumed.
*/
static inline int
cdp_rsim_tx_encap(ol_txrx_soc_handle soc,
struct cdp_vdev *vdev, qdf_nbuf_t *pnbuf)
static inline void
cdp_rawsim_get_astentry (ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
qdf_nbuf_t *pnbuf, struct cdp_raw_ast *raw_ast)
{
if (soc->ops->raw_ops->rsim_tx_encap)
return soc->ops->raw_ops->rsim_tx_encap(vdev, pnbuf);
return 0;
if (!soc || !soc->ops || !soc->ops->raw_ops)
return;
if (soc->ops->raw_ops->rsim_get_astentry)
soc->ops->raw_ops->rsim_get_astentry(vdev, pnbuf, raw_ast);
return;
}
#endif