Data Plane Development Kit - Data Plane Development Kit

DPDK
Data Plane Development Kit.png
Stabil utgivelse
21.08 / 21. mai 2021 ( 2021-05-21 )
Oppbevaringssted git .dpdk .org /dpdk /
Skrevet inn C
Operativsystem Linux , FreeBSD , Windows
Type Pakkebehandling
Tillatelse BSD
Nettsted www .dpdk .org

Den data Plane Development Kit ( DPDK ) er en åpen kildekode- programvare-prosjekt administrert av Linux Foundation . Det gir et sett av data plane biblioteker og nettverksgrensesnittstyringen drivere polling-modus for lossing TCP pakken behandling fra operativsystemet kjernen til prosesser som kjører på brukerens plass . Denne avlastningen oppnår høyere databehandlingseffektivitet og høyere pakkegjennomstrømning enn det er mulig ved bruk av avbruddsdrevet prosessering i kjernen.

DPDK gir et programmerings rammeverk for x86 , ARM og PowerPC -prosessorer og gir raskere utvikling av høyhastighets datapakke nettverksapplikasjoner. Den skaleres fra mobile prosessorer, for eksempel Intel Atom , til prosessorer i serverkvalitet, for eksempel Intel Xeon . Den støtter instruksjonssettarkitekturer som Intel, IBM POWER8 , EZchip og ARM . Den leveres og støttes under åpen kildekode BSD-lisens .

Oversikt

DPDK -rammeverket skaper et sett med biblioteker for spesifikke maskinvare-/programvaremiljøer gjennom opprettelsen av et miljøabstraksjonslag (EAL). EAL skjuler miljøspesifikasjonene og gir et standard programmeringsgrensesnitt til biblioteker, tilgjengelige maskinvareakseleratorer og annen maskinvare og operativsystem (Linux, FreeBSD). Når EAL er opprettet for et bestemt miljø, kobler utviklere til biblioteket for å lage sine applikasjoner. For eksempel gir EAL rammene for å støtte Linux , FreeBSD , Intel IA- 32 eller 64-bit , IBM POWER9 og ARM 32- eller 64-bit.

EAL tilbyr også tilleggstjenester, inkludert tidsreferanser, generisk busstilgang , sporings- og feilsøkingsfunksjoner og alarmoperasjoner.

Ved å bruke DPDK-biblioteker kan man implementere en lav overhead- run-to- complete, pipeline eller iscenesatt, hendelsesdrevet eller hybrid modell helt i brukerområdet og eliminere kjerne og kjerne til brukerkopi. Maskinvare bistår fra NIC/Regex/Accelerators , biblioteker som er forbedret for å gjøre bruk av Intelligence Storage Acceleration (ISA) for masseytelse og tilgang til enheter via polling bidrar også til å eliminere ytelsen over interrupt . Hugepages brukes til tildeling av store minnebasseng, for å redusere mengden oppslag og sideadministrasjon.

DPDK inneholder også programvareeksempler som fremhever beste praksis for programvarearkitektur, tips for design og lagring av datastruktur, applikasjonsprofilering og ytelsesjusteringsverktøy og tips som adresserer vanlige underskudd i nettverksytelse.

Biblioteker

DPDK inkluderer databladbiblioteker og optimaliserte nettverkskontroller (NIC) -drivere for følgende:

  • En købehandler implementerer låseløse køer
  • En bufferbehandling forhåndstildeler buffere med fast størrelse
  • En minneansvarlig tildeler grupper av objekter i minnet og bruker en ring for å lagre gratis objekter; sikrer at objekter spres likt på alle DRAM -kanaler
  • Avstemningsmodusdrivere (PMD) er designet for å fungere uten asynkrone varsler, noe som reduserer overhead
  • Et pakkerammeverk - et sett med biblioteker som hjelper til med å utvikle pakkebehandling

Alle bibliotekene er lagret i katalogene dpdk/lib/librte_*

Plugins

DPDK inkluderer drivere for mange maskinvaretyper. Det har vært noen ekstra out-of-tree plugin-drivere tidligere, som nå regnes som utdatert.

  • librte_pmd_vmxnet3.so  - gir PMD Ethernet -lag som støtter Vmxnet3 paravirtualisert NIC; erstattet av full VMXNET3 -støtte i native DPDK.
  • librte_pmd_memnic_copy.so  - gir et virtuelt PMD Ethernet -lag gjennom delt minne basert på 2 minnekopier av pakker

Miljø

DPDK ble opprinnelig designet for å kjøre ved bruk av en bare-metall- modus som for tiden er utdatert. Faktisk gir DPDK's EAL støtte for Linux- eller FreeBSD -brukerlandsprogram .

EAL kan utvides for å støtte prosessorer.

Økosystem

DPDK er nå et åpen kildekode-prosjekt under Linux Foundation , støttet av mange selskaper. DPDK styres av et styret. De tekniske aktivitetene overvåkes av et teknisk styre. Ved siden av Intel , som er bidragsyter til DPDK, støtter flere andre leverandører også DPDK i produktene sine, og noen tilbyr tilleggsopplæring, støtte og profesjonelle tjenester. Listen over leverandører som har kunngjort DPDK -støtte inkluderer: 6WIND , ALTEN Calsoft Labs, Advantech, Brocade, Big Switch Networks, Mellanox Technologies , Radisys , Tieto, Wind River og Lanner .

Prosjekter

Den pfSense prosjekt som ble publisert et veikart 25. februar 2015 hvor utvikleren Jim Thompson annonserte omskriving av pfSense kjerne inkludert pf , nettverkspakke videresending og forming, kobling bonding , IPsec -Bruke DPDK: "Vi har et mål om å kunne å videresende, med pakkefiltrering med hastigheter på minst 14,88 Mpps. Dette er "linjefrekvens" på et 10 Gbps grensesnitt. Det er rett og slett ingen måte å bruke dagens FreeBSD (eller linux) in-core-stabler for denne typen belastning. "

Open vSwitch (OVS) har et begrenset sett med funksjoner som kjører userland som kan utnyttes for å omgå Linux -kjernen OVS -behandling. Dette brukstilfellet for OVS med DPDK-brukerland heter vanligvis OVS-DPDK. Det er stort sett distribuert med OpenStack Neutron, men det forutsetter at mange funksjoner og programvaredefinerte nettverk (SDN) -funksjoner i Openstack er deaktivert. For eksempel, når OVS-DPDK brukes, gir Neutron et lavere sikkerhetsnivå enn når OVS-kjernen brukes (ingen stateful brannmur, mindre sikkerhetsgruppe).

Den FD.IO VPP plattformen er et utvidbart rammeverk som gir out-of-the-boksen produksjonskvalitet bryter / ruterfunksjonalitet. Det er åpen kildekode-versjon av Ciscos Vector Packet Processing (VPP) -teknologi: en høyytelses, pakkebehandlingsbunke som kan kjøres på råvare-CPUer, og kan utnytte avstemningsmodusdriverne for både NIC-er og kryptografisk akselerasjonsmaskinvare og biblioteker. VPP støtter og bruker DPDK -biblioteket.

TRex er en åpen kildekode -trafikkgenerator som bruker DPDK. Den genererer L4–7 trafikk basert på forbehandling og smart avspilling av ekte trafikkmaler. TRex forsterker både klient- og serversiden trafikk og kan skalere til 200 Gbit/s med en UCS ved hjelp av Intel XL710. TRex støtter også flere strømmer, muligheten til å endre et hvilket som helst pakkefelt og gir statistikk, ventetid og jitter per strøm.

DTS (DPDK Test Suite) er et Python-basert rammeverk for funksjonelle tester og benchmarks. Det er et åpen kildekode-prosjekt, startet i 2014, og er vert på dpdk.org. Den støtter både programvaretrafikkgeneratorer som Scapy og dpdk-pktgen, og en maskinvaretrafikkgenerator som Ixia .

DPDK har støtte for flere SRIOV -nettverksdrivere, noe som gjør det mulig å opprette en PF (fysisk funksjon) og VFer, og også å starte VM (som QEMU VM) og tildele VFer til dem ved hjelp av PCI Passthrough

DDP (Dynamic Device Personalization) er en av de nye avanserte funksjonene som er implementert med DPDK. Den lar deg laste fastvare for en enhet dynamisk, uten å tilbakestille verten.

Referanser