Intel® IXP400 Software

Access-Layer Components: Security (IxCryptoAcc) API

Figure 36. IPSec API Call Flow

1.(...NPE init, CryptoAccConfig, CryptoAccInit, CryptoAccCtxRegister, etc...)

create data mBufs, IV

2.ixCryptoAccAuthCryptPerform (cryptoCtxId, *pSrcMbuf, *pDestMbuf, authStartOffset, authDataLen, cryptStartOffset, cryptDataLen, icvOffset, *pIV)

3.

IPSec Client

IxCryptoAcc

6.IxCryptoPerformCompleteCallback (cryptoContextId, mBuf *, IxCryptoAccStatus)

IxQMgr / AQM

Crypto Request Queue

 

Crypto Complete Queue

 

 

 

 

 

 

 

 

 

 

SDRAM

5.

NPE - C

4.

B2918-01

1.The proper NPE microcode images must have been downloaded to the NPE and initialized. Additionally, the IxCryptoAcc API must be properly configured, initialized, and the crypto context registration procedure must have completed.

At this point, the client must create the IX_OSAL_MBUFs that will hold the target data and populate the source IX_OSAL_MBUF with the data to be operated on. Depending on the encryption/decryption mode being used, the client must supply an initialization vector for the AES or DES algorithm.

2.The client submits the IxCryptoAccAuthCryptPerform() function, supplying the crypto context ID, pointers to the source and destination buffer, offset and length of the authentication and crypto data, offset to the integrity check value, and a pointer to the initialization vector.

3.IxCryptoAcc uses IxQMgr to place a descriptor for the data into the Crypto Request Queue.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

102

Document Number: 252539, Revision: 007

 

Page 102
Image 102
Intel IXP400 manual IPSec API Call Flow