summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c
diff options
context:
space:
mode:
authorCamelia Groza <camelia.groza@freescale.com>2015-04-27 07:43:39 (GMT)
committerMadalin-Cristian Bucur <madalin.bucur@freescale.com>2015-04-27 13:56:16 (GMT)
commitd4dce299e2a6278f5d237e5bf17be232820db138 (patch)
treeb3724b6324f992468b4c7d1a83612aced02b4cea /drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c
parentea0f80c1398c91a6ca549edf2b826a40eed1f893 (diff)
downloadlinux-fsl-qoriq-d4dce299e2a6278f5d237e5bf17be232820db138.tar.xz
fmd: Alter MACsec MFL when the SCI is missing from the SecTAG
Signed-off-by: Camelia Groza <camelia.groza@freescale.com> Change-Id: I5f8d3dcebad92e14972ef9e48188e7df6642cc0a Reviewed-on: http://git.am.freescale.net:8181/35473 Reviewed-by: Liron Himi <Liron.Himi@freescale.com> Reviewed-by: Cristian-Constantin Sovaiala <Cristian.Sovaiala@freescale.com> Tested-by: Cristian-Constantin Sovaiala <Cristian.Sovaiala@freescale.com> Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c')
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c
index 7b82fd0..79260c8 100644
--- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c
+++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MACSEC/fm_macsec_master.c
@@ -151,8 +151,9 @@ static t_Error MacsecInit(t_Handle h_FmMacsec)
WRITE_UINT32(p_FmMacsec->p_FmMacsecRegs->cfg, tmpReg);
tmpReg = FM_MAC_GetMaxFrameLength(p_FmMacsec->h_FmMac);
- /* Ethernet FCS (4 bytes) overhead must be subtracted from MFL*/
- tmpReg -= 4;
+ /* At least Ethernet FCS (4 bytes) overhead must be subtracted from MFL.
+ * In addition, the SCI (8 bytes) overhead might be subtracted as well. */
+ tmpReg -= p_FmMacsecDriverParam->mflSubtract;
WRITE_UINT32(p_FmMacsec->p_FmMacsecRegs->mfl, tmpReg);
WRITE_UINT32(p_FmMacsec->p_FmMacsecRegs->tpnet, p_FmMacsecDriverParam->pnExhThr);
@@ -320,6 +321,7 @@ static t_Error MacsecConfigSectagWithoutSCI(t_Handle h_FmMacsec)
SANITY_CHECK_RETURN_ERROR(p_FmMacsec->p_FmMacsecDriverParam, E_INVALID_HANDLE);
p_FmMacsec->p_FmMacsecDriverParam->sectagOverhead -= MACSEC_SCI_SIZE;
+ p_FmMacsec->p_FmMacsecDriverParam->mflSubtract += MACSEC_SCI_SIZE;
return E_OK;
}
@@ -1012,7 +1014,8 @@ t_Handle FM_MACSEC_MASTER_Config(t_FmMacsecParams *p_FmMacsecParam)
p_FmMacsec->p_FmMacsecDriverParam->reservedSc0 = DEFAULT_sc0ReservedForPTP;
p_FmMacsec->p_FmMacsecDriverParam->byPassMode = !DEFAULT_normalMode;
p_FmMacsec->p_FmMacsecDriverParam->pnExhThr = DEFAULT_pnExhThr;
- p_FmMacsec->p_FmMacsecDriverParam->sectagOverhead = DEFAULT_overhead;
+ p_FmMacsec->p_FmMacsecDriverParam->sectagOverhead = DEFAULT_sectagOverhead;
+ p_FmMacsec->p_FmMacsecDriverParam->mflSubtract = DEFAULT_mflSubtract;
/* build the FM MACSEC master IPC address */
memset(p_FmMacsec->fmMacsecModuleName, 0, (sizeof(char))*MODULE_NAME_SIZE);
FM_MAC_GetId(p_FmMacsec->h_FmMac,&macId);