diff options
author | Pan Jiafei <Jiafei.Pan@freescale.com> | 2014-07-30 07:41:01 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:39:17 (GMT) |
commit | d3515fe84958bd0b20ddddc600de5ea198e597d3 (patch) | |
tree | d9044cf7c33ff4b70d6a626bfa668dd0bdebb495 /drivers/crypto/caam | |
parent | 2ae30dce496912131c5a5a401cf2ea13e8210b11 (diff) | |
download | linux-fsl-qoriq-d3515fe84958bd0b20ddddc600de5ea198e597d3.tar.xz |
capwap: add capwap support
CAPWAP stands for Control and Provisioning of Wireless Access Points.
CAPWAP is a standard, interoperable protocol that enables a controller
to manage a collection of wireless access points.
There are three drivers in Kernel Space: CAPWAP Domain driver,
CAPWAP Bridge driver and CAPWAP Tunnel driver.
CAPWAP Domain Driver implements configuration for CAPWAP Domain,
including PCD configuration and FQs setup. User must configure and
initialize CAPWAP domain before CAPWAP Tunnel and CAPWAP Bridge works.
CAPWAP Tunnel Driver is a misc device driver, which registers four
misc devices for four CAPWAP tunnels:
fsl-capwap-ctrl-dtls,
fsl-capwap-ctl-n-dtls,
fsl-capwap-data-dtls,
fsl-capwap-data-n-dtls.
The misc device provides file-operation to transmit/receive DTLS/non-DTLS
packets. For example, read from the device fsl-capwap-ctrl-dtls can receive
DTLS control packet; Write to the device fsl-capwap-ctrl-dtls can transmit
DTLS control packet.
The CAPWAP Bridge Driver is also a misc device driver; it can bridge packets
between PCIe NIC and CAPWAP data tunnels.
To support capwap drivers, there should be a shared ethernet port in dts file
to use as CAPWAP Ethernet port.
Signed-off-by: Pan Jiafei <Jiafei.Pan@freescale.com>
Change-Id: I7c99191156ebee5dd43673d20fb5c8469a780546
Reviewed-on: http://git.am.freescale.net:8181/21438
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Jianhua Xie <jianhua.xie@freescale.com>
Reviewed-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Diffstat (limited to 'drivers/crypto/caam')
-rw-r--r-- | drivers/crypto/caam/desc.h | 8 | ||||
-rw-r--r-- | drivers/crypto/caam/pdb.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/crypto/caam/desc.h b/drivers/crypto/caam/desc.h index ffb9e99..7a2cde3 100644 --- a/drivers/crypto/caam/desc.h +++ b/drivers/crypto/caam/desc.h @@ -454,8 +454,16 @@ struct sec4_sg_entry { #define FIFOST_TYPE_MESSAGE_DATA (0x30 << FIFOST_TYPE_SHIFT) #define FIFOST_TYPE_RNGSTORE (0x34 << FIFOST_TYPE_SHIFT) #define FIFOST_TYPE_RNGFIFO (0x35 << FIFOST_TYPE_SHIFT) +#define FIFOST_TYPE_META_DATA (0x3e << FIFOST_TYPE_SHIFT) #define FIFOST_TYPE_SKIP (0x3f << FIFOST_TYPE_SHIFT) +/* AUX field */ +#define FIFOST_AUX_SHIFT 25 +#define FIFOST_AUX_TYPE0 (0x0 << FIFOST_AUX_SHIFT) +#define FIFOST_AUX_TYPE1 (0x1 << FIFOST_AUX_SHIFT) +#define FIFOST_AUX_TYPE2 (0x2 << FIFOST_AUX_SHIFT) +#define FIFOST_AUX_TYPE3 (0x3 << FIFOST_AUX_SHIFT) + /* * OPERATION Command Constructs */ diff --git a/drivers/crypto/caam/pdb.h b/drivers/crypto/caam/pdb.h index 0680b30..aca22f9 100644 --- a/drivers/crypto/caam/pdb.h +++ b/drivers/crypto/caam/pdb.h @@ -285,7 +285,7 @@ struct dtls_block_encap_pdb { u16 epoch; u16 seq_num[3]; u32 iv[4]; -}; +} __packed; struct tls_block_decap_pdb { u8 rsvd[3]; @@ -310,7 +310,7 @@ struct dtls_block_decap_pdb { u16 seq_num[3]; u32 iv[4]; u64 antireplay_scorecard; -}; +} __packed; /* * SRTP Protocol Data Blocks |