Wireless Base Band Device (bbdev) - DPDK

1y ago
9 Views
2 Downloads
1.11 MB
15 Pages
Last View : 20d ago
Last Download : 3m ago
Upload by : Milena Petrie
Transcription

Wireless Base Band Device(bbdev)Amr MokhtarDPDK Summit Userspace - Dublin- 2017

why baseband.?MAC Tx DataDownlink* Reference: 3GPP TS 36.211 & 36.212

architecture Common programing framework forwireless workloadsApplicationApplication facing APIDPDKlibrte bbdev Seamless HW/SW abstraction interface forunderlying operationsDriver facing APIbbdev HW driver Pluggable driver support for various stagesof wireless packet processing (new driverregisters itself and reports its capabilities)SoftwareHardwareFPGA or FixedFunction Accel.bbdev SW driverbbdev SW driverbbdev SW driverSW Turbo libSW FFT/iFFT libSW ModulationMapper lib

workflowDevice stoppedrte eal init()rte bbdev count()rte bbdev info get()Device Configurationrte bbdev close()rte bbdev configure()rte bbdev configure()Device identifiedDevice stoppedDevice configuredrte bbdev stop()Queues configuredrte bbdev queue configure()rte bbdev start()rte bbdev enqueue ops()Device runningrte bbdev start()rte bbdev dequeue ops()

lookaside model - hardware1.Application calls the API to submit an offload request to the user-spacedevice driver2.Driver forms the descriptor in ring in memory, including pointers to databuffersEnqueueThread1. enqueue ops()The driver enqueues the descriptor by writing to the relevant MMIORegister4.The driver returns from the API call back to the application thread2. Form hw requestdescriptor(s)5.HW DMA reads the descriptor(s) created in step 2, and input databuffers3. Enqueue requestdescriptor(s) (MMIO write)HW performs the operation(s)7.Once complete the HW will DMA write the output buffers and overwritethe descriptor(s) indicating to SW that this request is complete.8.Application calls to API to check for completed requests (dequeue)9.Driver checks if response descriptors have been written back10.Driver returns results to application if descriptors have been writtenback, or empty response if not.8. dequeue ops()10. Ret4. Ret3.6.DequeueThread9. Consume responsedescriptor(s), if availableN 1SW DescriptorRings0DPDKSoftwareHardware5. DMA read descriptor,and input data7. DMA write results backand update descriptorTurbo Dec/Enc6. Perform Operation(s)* Enqueue thread and dequeue thread may be the same

lookaside model - software1.Application calls the API to submit an offload request to the user-spacedevice driver2.Driver forms its internal structures and perform operation(s)sequentially.3.The driver enqueues the outcomes to internal software rings.4.The driver returns from the API call back to the application thread.5.Application calls to API to check for completed requests (dequeue).6.Driver checks if some results were produced on the tip of the ring, thenpull it out.7.Driver returns the pulled out results to application if there were anyavailable, or empty response if not.EnqueueThread1. enqueue ops()DequeueThread5. dequeue ops()4. Ret7. Ret2. Perform Operation(s)Turbo Dec/Enc6. Consume from sw ring,if available3. Produce to sw ringN 1Queue SW Rings0DPDKSoftwareHardware* Enqueue thread and dequeue thread may be the same

Note on mbuf* usage in bbdevmbuf seg#1CB #1op data- offsetmbuf seg#2mbuf seg#3mbuf seg#nCB #2CB #3.CB #nop data- lengthTransport Block (TB)/** Data input and output buffer for Turbo operations */struct rte bbdev op data {struct rte mbuf *data;/** First mbuf segment with input/output data. Each segment represents* one Code Block.*/uint32 t offset;/** The starting point for the Turbo input/output, in bytes, from the* start of the first segment's data buffer. It must be smaller than the* first segment's data len!*/uint32 t length;/** Length of Transport Block - number of bytes for Turbo Encode/Decode* operation for input; length of the output for output operation.*/};* This mbuf formality is experimental and subject to change

bbdev APIs Device Management APIs Queue Management APIs Operation Management APIs Interrupts Support APIs Statistics APIs

bbdev APIs Device creation is based on the same principles as DPDK cryptodev and ethdev. Register driver configuration structure with DPDK EAL using the existing RTE PMD REGISTER PCImacro. Physical devices are identified by PCI ID during the EAL PCI scan and allocated a unique deviceidentifier.Device initiation is also along the same principles as DPDK cryptodev and ethdev. Devices are first configured int rte bbdev configure(uint8 t dev id, uint16 t num queues,const struct rte bbdev conf *conf); Devices queues are then configured before the device is started and used. int rte bbdev queue configure(uint8 t dev id, uint16 t queue id,const struct rte bbdev queue conf *conf)

bbdev APIs – Device Managementuint8 t rte bbdev count(void);bool rte bbdev is valid(uint8 t dev id);uint8 t rte bbdev next(uint8 t dev id);int rte bbdev configure(uint8 t dev id, uint16 t num queues,const struct rte bbdev conf *conf);int rte bbdev info get(uint8 t dev id, struct rte bbdev info *dev info);int rte bbdev start(uint8 t dev id);int rte bbdev stop(uint8 t dev id);int rte bbdev close(uint8 t dev id);

bbdev APIs – Queue Managementint rte bbdev queue configure(uint8 t dev id, uint16 t queue id,const struct rte bbdev queue conf *conf);int rte bbdev queue start(uint8 t dev id, uint16 t queue id);int rte bbdev queue stop(uint8 t dev id, uint16 t queue id);int rte bbdev queue info get(uint8 t dev id, uint16 t queue id,struct rte bbdev queue info *dev info);/** Different operation types supported by the device */enum rte bbdev op type {RTE BBDEV OP NONE, /** Dummy operation that does nothing */RTE BBDEV OP TURBO DEC, /** Turbo decode */RTE BBDEV OP TURBO ENC, /** Turbo encode */RTE BBDEV OP TYPE COUNT, /** Count of different op types */};

DPDK BBDEV APIs – Operation Managementstatic inline uint16 t rte bbdev enqueue ops(uint8 t dev id, uint16 t queue id,struct rte bbdev op **ops, uint16 t num ops)static inline uint16 t rte bbdev dequeue ops(uint8 t dev id, uint16 t queue id,struct rte bbdev op **ops, uint16 t num ops)/** Structure specifying a single operation */struct rte bbdev op {enum rte bbdev op type type; /** Type of this operation */int status; /** Status of operation that was performed */struct rte mempool *mempool; /** Mempool which op instance is in */void *opaque data; /** Opaque pointer for user data */union {struct rte bbdev op turbo dec *turbo dec;struct rte bbdev op turbo enc *turbo enc;};};

bbdev APIs – Interrupt Supportint rte bbdev callback register(uint8 t dev id, enum rte bbdev event type event,rte bbdev cb fn cb fn, void *cb arg);int rte bbdev callback unregister(uint8 t dev id, enum rte bbdev event type event,rte bbdev cb fn cb fn, void *cb arg);int rte bbdev queue intr enable(uint8 t dev id, uint16 t queue id);int rte bbdev queue intr disable(uint8 t dev id, uint16 t queue id);int rte bbdev queue intr ctl(uint8 t dev id, uint16 t queue id, int epfd, int op,void *data);

bbdev APIs – Statisticsint rte bbdev stats get(uint8 t dev id, struct rte bbdev stats *stats);int rte bbdev stats reset(uint8 t dev id);int rte bbdev info get(uint8 t dev id, struct rte bbdev info *dev info);

Questions?Amr Mokhtaramr.mokhtar@intel.com

Register driver configuration structure with DPDK EAL using the existing RTE_PMD_REGISTER_PCI macro. Physical devices are identified by PCI ID during the EAL PCI scan and allocated a unique device identifier. Device initiation is also along the same principles as DPDK cryptodev and ethdev. Devices are first configured

Related Documents:

TRENDnet’s AC1750 Dual Band Wireless Router, model TEW-812DRU, produces the ultimate wireless experience with gigabit wireless speeds. Manage two wireless networks—the 1300 Mbps Wireless AC band for the fastest wireless available and the 450 Mbps Wireless N ba

Cope & Stick - 500 Series Veneer Doors Miter Frame - 500 Series. Style Band 1 Band 2 Band 3 Band 4 Band 5 101 Glass 10 12 13 16 18 Material Band 1 Band 2 Band 3 Band 4 Band 5 102/104 Glass 12 14 15 18 20 Paint X Notes - PRICES ARE PER SQ/FT Maple Paint X Minimum Dimensions - Doors 7"W x 7"H Natural Soft Maple X

Affairs Group 75: Records of the Osage Agency - Annuity Payment Rolls, 1880-1907 (Roll 1 of 21) Osage Annuity Payment Roll: 1 st and 2nd Quarters of 1880 o Big Chief Band o Joe's Band o Big Hill Band o White Hair Band o Tall Chief Band o Black Dog Band o Saucy Chief Band o Beaver Band o Strike Axe Band o No-Pa-Walla Band

Wireless AC3200 Tri Band Gigabit Cloud Router Wireless AC3150 Ultra-WiFi Gigabit Cloud Router Wireless AC1900 Gigabit Cloud Router Wireless AC1750 Gigabit Cloud Router Wireless AC1750 High-Power Gigabit Router Wireless AC1200 Gigabit Cloud Router Wireless Technology Tri Band Wireless AC (5300

CEFR level: IELTS band: C1 IELTS band: 8 IELTS band: 7.5 IELTS band: 7 B2 IELTS band: 6.5 IELTS band: 6 IELTS band: 5.5 IELTS : 4.5 IELTS band: 4 IELTS band: 5 978-X-XXX-XXXXX-X Author Title C M Cullen, French and Jakeman Y K Pantoene XXX STUDENT'S BOOK with DVD-ROM WITH ANSWERS B1-C1 The

WIKUS BAND SAW BLADES Bimetal band saw blades Diamond coated band saw blades Carbide band saw blades Carbon steel band saw blades Sales units: coils in fixed lengths and manufacturing coils up to 120 m, depending on the band width, welded-to-length band saw blades Band widths: 4 to 125 mm Constant tooth pitches: 0,75 to 18 teeth per inch (tpi)

Wireless# Guide to Wireless Communications Chapter 1 Introduction to Wireless Communications . Wireless Local Area Network (WLAN) - Extension of a wired LAN Connecting to it through a device called a wireless . network Each computer on the WLAN has a wireless network interface card (NIC) - With an antenna built into it .

Unit I: Public Administration - Meaning, Nature, Scope and Significance; Evolution of the discipline; Public and Private Administration. (18 L) Unit II: Approaches – Traditional: Historical and Philosophical, Modern: Behavioural and Comparative; New Public Administration; New Public Management. (18 L) Unit III: Concept of Organisation – Formal and Informal Organisation; Structure of .