1 / 15

NetCP - NWAL API Flow

NetCP - NWAL API Flow. NetCP (HW,SW) Overview. NWAL Feature Overview. Data path offload Control configuration Blocking / Non Blocking support L2: MAC Classification/Lookup L3: IP Classification/Lookup L4: UCP/TCP/GTPU Lookup SA: Crypto offload RX Packet In band IPSec traffic

agrata
Download Presentation

NetCP - NWAL API Flow

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NetCP - NWAL API Flow

  2. NetCP (HW,SW) Overview

  3. NWAL Feature Overview • Data path offload Control configuration • Blocking / Non Blocking support • L2: MAC Classification/Lookup • L3: IP Classification/Lookup • L4: UCP/TCP/GTPU Lookup • SA: Crypto offload • RX Packet In band IPSec traffic • RX Packet Side band IPSec offload • IP/UDP Checksum TX and RX • Routing between PA and SA and EMAC port redirection

  4. Data Path Application Initialization BIOS/ARM Core User Application NWAL System initialization: QMSS/CPPI/Switch Master Core Only: Global Resource Initialization at NWAL for NetCP: PA/SA and common Queues nwal_getBufferReq() nwal_create() For each proc Initializes local per core resources nwal_start()

  5. Interface address Configuration: Blocking BIOS/ARM Cores User Application NWAL PA LLD QMSS LLD Configure Local MAC: nwal_SetMacIface 1 Add MAC 2 Pa_addMac() 3 Qmss_queuePush() 4 Qmss_queuePop() Pa_forwardResult() 5 API return with status 6 Configure Local IP nwal_SetIPAddr 1 Add IP 2 Pa_addIP() 3 Qmss_queuePush() 4 Qmss_queuePop() Pa_forwardResult() 5 API return with status 6

  6. L4 Connection setup: RX/ TX[Optional] BIOS/ARM Core User Application NWAL PA LLD QMSS LLD 1 CREATE_CONNECTION (IP handle) nwal_addConn() 2 Pa_addPort() 3 Qmss_queuePush() 4 Qmss_queuePop() Pa_forwardResult() 5 Store the SRC address. Enable RX flow API return with status 6

  7. L4 Connection: TX config BIOS/ARM Core User App NWAL PA LLD QMSS LLD CONFIGURE_CONNECTION : nwal_cfgConn() 1 Format and store the TX header. Enable TX flow API return with status 2

  8. TX: Data Path Application <->NWAL BIOS/ARM Cores Application NWAL Multicore Navigator Transmit packet with header from App. nwal_sendRaw() Allocate descriptor. Queue Push to Loopback or ENET Higher layer transmit nwal_send() • Optional: • Insert Protocol headers MAC/I[IPSec]/IP/UDP. • Prepare command label for TX offload: • - IP/UDP checksum • -Crypto. Encryption/Authentication tag offload • - Queue Push to destination Queue

  9. RX: Data Path Application <->NWAL BIOS/ARM Cores Application NWAL Multicore Navigator Non blocking: Callback with status/results. Blocking: API return will indicate results nwal_pollCtl( ) Queue Pop Retrieve meta data information including channel handle nwal_cmdCallBack() Queue Pop Retrieve metadata information including channel handle nwal_cmdPaStatsReply() Queue Pop Retrieve meta data information: checksum errors and channel handle One Callback for group of packets nwal_pollPkt(,..,. maxPkts,..) nwal_rxPktCallBack()

  10. NWAL Unit test Overview • Demonstrates multicore capability • Master Proc: • Initializes global system resources • NWAL resources • Configures NetCP for MAC/IP/IPSec • Local Proc • L4 connection establishment • Transmit of packet from each proc • Loopback at NetCP • Receive at host and verify • Metadata • Packet payload • Tests: • MAC Classification & Next Route • IP Classification & Next Route • UDP L4 Connection • Transmit and Receive verification

  11. Backup Slides

  12. SP policy offload (RX): (SA Creation) BIOS/ARM Cores Application NWAL PA LLD SA LLD QMSS LLD CREATE_SA: Dir = RX: nwal_setSecAssoc 1 2 Sa_chanCreate() Sa_chanControl(): sa_CHAN_CTRL_GEN_CONFIG 3 Sa_chanControl(): sa_CHAN_CTRL_KEY_CONFIG 4 5 ScAlloc() Callback with Security Context 6 PA_addIP() 7 Qmss_queuePush() Qmss_queuePop() 8 Pa_forwardResult() 9 API return with status 10

  13. SP policy offload (RX): (SP config) BIOS/ARM Cores User App NWAL PA LLD SA LLD QMSS LLD ADD_SP:Dir = RX nwal_setSecPolicy 11 12 PA_addIP() 13 Qmss_queuePush() Qmss_queuePop() 14 Pa_forwardResult() 15 Store the policy info and link it to SA. API return with status 16

  14. SP policy offload (TX): (SA Creation) BIOS/ARM Cores User App NWAL PA LLD SA LLD QMSS LLD CREATE_SA: Dir = TX nwal_setSecAssoc() 1 2 Sa_chanCreate() Sa_chanControl(): sa_CHAN_CTRL_GEN_CONFIG 3 Sa_chanControl(): sa_CHAN_CTRL_KEY_CONFIG 4 5 ScAlloc() Callback with Security Context Format and store the TX header for tunnel. API return with status 6

  15. SP policy offload (TX): (SP config) BIOS/ARM Core App NWAL PA LLD SA LLD QMSS LLD ADD_SP: Dir = TX: nwal_setSecPolicy 7 Store the policy info and link it to SA. API return with status 8

More Related