SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Membership Library
in DPDK 17.11
Sameh	Gobriel &	Charlie	Tai	- Intel
DPDK	US	Summit	- San	Jose	- 2017
Contributors
u Yipeng	Wang	yipeng1.wang@intel.com
u Ren	Wang	ren.wang@intel.com
u John	Mcnamara	john.mcnamara@intel.com
u Pablo	De	Lara	Guarch	pablo.de.lara.guarch@intel.com
u Antonio	Fischetti	antonio.fischetti@intel.com
Agenda
u Membership	Library	in	DPDK	17.11
u Membership	Library	Usages
u API	Overview		
u Research	Proof	of	Concept:	using	Membership	Library	with	OVS
Membership Test Usage (example)
Blacklisted	Flow	1
Blacklisted	Flow	2
Blacklisted	Flow	3
Blacklisted	Flow	N
Clients
Incoming	Flows
Legitimate	Flows	
are	Forwarded	to	
Backend	Server	
Build
Set	{..}
Set	of	Blacklisted	Flows	
to	be	Dropped
Membership	Test	?
Check	if	Flow	Belongs	to	
Blacklisted	Set
SN
S2
S1
Set	Summary
A	Summary	Instead	Of	
Storing	Original	ListMembership Library is a DPDK Library to Provide Users the Functionality
to Create Different Types of Set-Summaries
Overview of DPDK Membership Library
Set	
Summary
Is	X	in	set?
No
Is	X	in	set?
Very	
probable	yes
Get	X
Summary	of	items	in	Probabilistic	data	structure
• Handle	membership	test	questions
• Much	smaller	storage
• Much	faster	than	huge	set	lookup
• [Multi-Set]:	Returns	X	is	not	found	or	which	set	it	
belongs	to	(with	high	probability)	
Huge	Set
[Millions	of	
Entries]
1-	Too	Much	Storage
2-	Slow	Lookup
Bloom	Filter
Vector	Bloom	
Filter
Hash	Table	Set	
Summary
Cuckoo	
Distributor
Membership	Library
6
Library Usages?
100’s of usages for Membership Library in Wide Range of Applications
Safe Browsing TCP Connection Tracker
Wildcard Classification
Database Semi-join
operations
Distributed web caching
P2P Overlay Networks =
Object Indexing
Detecting loops in unicast and
multicast routes
Set intersections and keyword
searches
Heavy Hitters Flows Detection
Network Statistics and
summaries
Signature Matching
and packet
inspection
7
Library Usages? 100’s too many to list
Distributed Web Cache
Set	
Summary
Clients
Distributed	Web	
Cache
Web	Servers
• Web	proxies	consult	set	summaries	for	each	http	request.
• Element	membership	in	the	set-summary	will	determine	response	
location.	
• For	element	hits,	requests	directed	to	a	near	cache	and	misses	are	
forwarded	to	backend	web	servers.
Routing Loop Detection
and/or Network Statistics
SET Packet
SET Packet
Encode	ID
• Node ID’s encoded in embedded set-summaries in the packet
header
• Instead of waiting for slow TTL, node checks membership in set-
summaries. Misses indicate loop-free routing.
• Idea can be generalized (for e.g. heavy hitters detection,
..etc.) to wide range of network stats.
8
Library Usages? 100’s too many to list
Safe Browsing and/or
Signature Matching
• URLs	membership	checked	against	suspicious	set-summary	and	
misses	indicate	safe.	
• Same	idea	is	applied	in	many	signature	matching	IDS	and	deep	
packet	inspection.	
Set	
Summary
Lookup	xyz.com?
xyz.com	
suspicious?
NO
Probably	
Yes
TCP Connection Tracker
• Flow keys membership tested and misses indicate
new flows.
• Hits are forwarded to worker thread for in-order
processing.
Set	
Summary
Flow	Key
New	Flow	=	New	Assignment
Old	Flow	=	forward	to	
specific	thread
9
Library Usages? 100’s too many to list
ACL & Wild Card Flow
Classification
• Flow keys membership results are used to optimize search for wild
card match
Later Slides: Results of
applying concept to OvS
Set	
Summary
Flow	Key
	forward	to	specific	
sub-table
Mask	1
Subtable	
Mask	x
Subtable	
New?
Membership Library API
Set-Summary Create
Set-Summary Element Insertion
Set-Summary Element Lookup
Set-Summary Element Delete
Reference: http://dpdk.org/doc/api/rte__member_8h_source.html
Function shown is just for high-level description & not in accurate Syntax
rte_member_create(rte_member_parameters);
Parameters: Type, num_of_keys, key_length,
number_of_sets, max_fp_rate, ..etc.
rte_member_add (*set_sum, *key, set_id);
A single key or a bulk of key lookup, return the first
match or up to max matches per key
1. rte_member_lookup(*setsum, *key,*set_id)
2. rte_member_lookup_bulk(*setsum,*keys, *set_ids)
3. rte_member_lookup_multi(*setsum,*key, max_match_per_key, ..)
4. rte_member_lookup_multi_bulk(*setsum,*keys,..);
Insert a key into a set_summary data structure
and the value is pointing to a specific set_id.
rte_member_delete(*setsum,*key,set_id)
Delete a single key from a given set.
Not all modes (e.g. vBF) support delete in current
implementation.
11
POC: Open vSwitch Flow Lookup
Mask	N
1xxx	xxxx
0xxx	xxxx
Flow	Mask Mask	L
01xx	xxxx	
10xx	xxxx
1110	0000
110x	xxxx	
101x	xxxx	
111x	xxxx	
011x	xxxx
1111	0000
1010	xxxx	
0011	xxxx	
1011	xxxx
Rules Match
Packet	Header
1. Set of disjoint sub-table
2. Rule is only inserted into one sub-table (lookup terminates after first match)
3. Lookup is done by sequentially search each sub-table until a match is found
12
OVS with Two Layer Lookup
using Membership Library
Mask	N
1xxx	xxxx
0xxx	xxxx
Flow	Mask Mask	L
01xx	xxxx	
10xx	xxxx
1110	0000
110x	xxxx	
101x	xxxx	
111x	xxxx	
011x	xxxx
1111	0000
1010	xxxx	
0011	xxxx	
1011	xxxx
Rules Match
Packet	Header
1st
	Level	of	
Indirection
Set	Summary	Provided	
by	Membership	Library
2X-3X Throughput Improvement for OvS using DPDK
Membership Library
Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
Hyper-Threading: disabled
0
1
2
3
4
5
6
MaxForwardingRate(MPPS)
20 Sub-Tables – 10K Flows – Uniform Traffic
Orig OvS-DPDK OvS-DPDK + ML Library
2.7X
• Membership library used to create a 1st level set-
summary indirection
• Flow Keys are looked up in set-summaries:
• Hits: directs to the correct sub-table for searching (correct 97%)
• Misses: “New” flow default sequential search & upcall if needed
13
Future Work
• Applying Membership Library Optimization to other workloads.
• Any Partners with huge list of Object ??
• Currently Working on ACL Library with high update rate based on tuple-
search algorithm
Legal Disclaimers
No	license	(express	or	implied,	 by	estoppel	or	otherwise)	to	any	intellectual	property	rights	is	granted	by	this	
document.
Intel	disclaims	all	express	and	implied	warranties,	including	 without	limitation,	the	implied	warranties	of	
merchantability,	fitness	for	a	particular	purpose,	 and	non-infringement,	 as	well	as	any	warranty	arising	from	
course	of	performance,	course	of	dealing,	or	usage	in	trade.
This	document	contains	information	on	products,	services	and/or	processes	in	development. All	information	
provided	here	is	subject	to	change	without	notice.	Contact	your	Intel	representative	to	obtain	the	latest	
forecast,	schedule,	specifications	and	roadmaps.
Intel	technologies’	 features	and	benefits	depend	on	system	configuration	 and	may	require	enabled	
hardware,	software	or	service	activation.	Performance	varies	depending	 on	system	configuration.	No	
computer	system	can	be	absolutely	secure.	Check	with	your	system	manufacturer	or	retailer	or	learn	more	
at	intel.com.	
©	2017	Intel	Corporation.	Intel,	the	Intel	logo,	Intel.	Experience	What’s	Inside,	and	the	Intel.	Experience	
What’s	Inside	logo	are	trademarks	of	Intel.	Corporation	in	the	U.S.	and/or	other	countries.
*Other	names	and	brands	may	be	claimed	as	the	property	of	others.
Questions?
Sameh	Gobriel
sameh.gobriel@intel.com
Charlie	Tai
charlie.tai@intel.com

Más contenido relacionado

Similar a LF_DPDK17_DPDK Membership Library

Slice for Distributed Persistence (JavaOne 2010)
Slice for Distributed Persistence (JavaOne 2010)Slice for Distributed Persistence (JavaOne 2010)
Slice for Distributed Persistence (JavaOne 2010)Pinaki Poddar
 
Apache Cassandra, part 2 – data model example, machinery
Apache Cassandra, part 2 – data model example, machineryApache Cassandra, part 2 – data model example, machinery
Apache Cassandra, part 2 – data model example, machineryAndrey Lomakin
 
Data Presentations Cassandra Sigmod
Data  Presentations  Cassandra SigmodData  Presentations  Cassandra Sigmod
Data Presentations Cassandra SigmodJeff Hammerbacher
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experiencedzynofustechnology
 
NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandrarantav
 
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)Ontico
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchAndrew Lowe
 
r,rstats,r language,r packages
r,rstats,r language,r packagesr,rstats,r language,r packages
r,rstats,r language,r packagesAjay Ohri
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterEDB
 
Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman
 
The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88Mahmoud Samir Fayed
 
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)Serban Tanasa
 
Automation Testing theory notes.pptx
Automation Testing theory notes.pptxAutomation Testing theory notes.pptx
Automation Testing theory notes.pptxNileshBorkar12
 
Government Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxGovernment Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxShivamDenge
 

Similar a LF_DPDK17_DPDK Membership Library (20)

Slice for Distributed Persistence (JavaOne 2010)
Slice for Distributed Persistence (JavaOne 2010)Slice for Distributed Persistence (JavaOne 2010)
Slice for Distributed Persistence (JavaOne 2010)
 
Apache Cassandra, part 2 – data model example, machinery
Apache Cassandra, part 2 – data model example, machineryApache Cassandra, part 2 – data model example, machinery
Apache Cassandra, part 2 – data model example, machinery
 
App A
App AApp A
App A
 
App A
App AApp A
App A
 
Data Presentations Cassandra Sigmod
Data  Presentations  Cassandra SigmodData  Presentations  Cassandra Sigmod
Data Presentations Cassandra Sigmod
 
Python Interview Questions For Experienced
Python Interview Questions For ExperiencedPython Interview Questions For Experienced
Python Interview Questions For Experienced
 
NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandra
 
Best practices tekx
Best practices tekxBest practices tekx
Best practices tekx
 
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
 
C1320prespost
C1320prespostC1320prespost
C1320prespost
 
r,rstats,r language,r packages
r,rstats,r language,r packagesr,rstats,r language,r packages
r,rstats,r language,r packages
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data Center
 
Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017
 
Hd6
Hd6Hd6
Hd6
 
The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88
 
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
 
Shivam PPT.pptx
Shivam PPT.pptxShivam PPT.pptx
Shivam PPT.pptx
 
Automation Testing theory notes.pptx
Automation Testing theory notes.pptxAutomation Testing theory notes.pptx
Automation Testing theory notes.pptx
 
Government Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptxGovernment Polytechnic Arvi-1.pptx
Government Polytechnic Arvi-1.pptx
 

Más de LF_DPDK

LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK17_Event Adapters - Connecting Devices to EventdevLF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK17_Event Adapters - Connecting Devices to EventdevLF_DPDK
 
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK17_Integrating and using DPDK with Open vSwitchLF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK17_Integrating and using DPDK with Open vSwitchLF_DPDK
 
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK17_ OpenVswitch hardware offload over DPDKLF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK17_ OpenVswitch hardware offload over DPDKLF_DPDK
 
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance testsLF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance testsLF_DPDK
 
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK
 
LF_DPDK17_testpmd: swissknife for NFV
LF_DPDK17_testpmd: swissknife for NFVLF_DPDK17_testpmd: swissknife for NFV
LF_DPDK17_testpmd: swissknife for NFVLF_DPDK
 
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNGLF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNGLF_DPDK
 
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...LF_DPDK
 
LF_DPDK17_DPDK on Microsoft Azure
LF_DPDK17_DPDK on Microsoft AzureLF_DPDK17_DPDK on Microsoft Azure
LF_DPDK17_DPDK on Microsoft AzureLF_DPDK
 
LF_DPDK17_VPP Host Stack
LF_DPDK17_VPP Host StackLF_DPDK17_VPP Host Stack
LF_DPDK17_VPP Host StackLF_DPDK
 
LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK17_rte_security: enhancing IPSEC offload LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK17_rte_security: enhancing IPSEC offload LF_DPDK
 
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applicationsLF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applicationsLF_DPDK
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...LF_DPDK
 
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...LF_DPDK
 
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...LF_DPDK
 
LF_DPDK17_Technical Roadmap
LF_DPDK17_Technical RoadmapLF_DPDK17_Technical Roadmap
LF_DPDK17_Technical RoadmapLF_DPDK
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK
 
LF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK
 
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...LF_DPDK
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK
 

Más de LF_DPDK (20)

LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK17_Event Adapters - Connecting Devices to EventdevLF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
 
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK17_Integrating and using DPDK with Open vSwitchLF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK17_Integrating and using DPDK with Open vSwitch
 
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK17_ OpenVswitch hardware offload over DPDKLF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK17_ OpenVswitch hardware offload over DPDK
 
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance testsLF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
 
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
 
LF_DPDK17_testpmd: swissknife for NFV
LF_DPDK17_testpmd: swissknife for NFVLF_DPDK17_testpmd: swissknife for NFV
LF_DPDK17_testpmd: swissknife for NFV
 
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNGLF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
 
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
 
LF_DPDK17_DPDK on Microsoft Azure
LF_DPDK17_DPDK on Microsoft AzureLF_DPDK17_DPDK on Microsoft Azure
LF_DPDK17_DPDK on Microsoft Azure
 
LF_DPDK17_VPP Host Stack
LF_DPDK17_VPP Host StackLF_DPDK17_VPP Host Stack
LF_DPDK17_VPP Host Stack
 
LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK17_rte_security: enhancing IPSEC offload LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK17_rte_security: enhancing IPSEC offload
 
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applicationsLF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
 
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
 
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
 
LF_DPDK17_Technical Roadmap
LF_DPDK17_Technical RoadmapLF_DPDK17_Technical Roadmap
LF_DPDK17_Technical Roadmap
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver model
 
LF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODP
 
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IO
 

Último

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Último (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

LF_DPDK17_DPDK Membership Library

  • 1. Membership Library in DPDK 17.11 Sameh Gobriel & Charlie Tai - Intel DPDK US Summit - San Jose - 2017
  • 2. Contributors u Yipeng Wang yipeng1.wang@intel.com u Ren Wang ren.wang@intel.com u John Mcnamara john.mcnamara@intel.com u Pablo De Lara Guarch pablo.de.lara.guarch@intel.com u Antonio Fischetti antonio.fischetti@intel.com
  • 3. Agenda u Membership Library in DPDK 17.11 u Membership Library Usages u API Overview u Research Proof of Concept: using Membership Library with OVS
  • 4. Membership Test Usage (example) Blacklisted Flow 1 Blacklisted Flow 2 Blacklisted Flow 3 Blacklisted Flow N Clients Incoming Flows Legitimate Flows are Forwarded to Backend Server Build Set {..} Set of Blacklisted Flows to be Dropped Membership Test ? Check if Flow Belongs to Blacklisted Set SN S2 S1 Set Summary A Summary Instead Of Storing Original ListMembership Library is a DPDK Library to Provide Users the Functionality to Create Different Types of Set-Summaries
  • 5. Overview of DPDK Membership Library Set Summary Is X in set? No Is X in set? Very probable yes Get X Summary of items in Probabilistic data structure • Handle membership test questions • Much smaller storage • Much faster than huge set lookup • [Multi-Set]: Returns X is not found or which set it belongs to (with high probability) Huge Set [Millions of Entries] 1- Too Much Storage 2- Slow Lookup Bloom Filter Vector Bloom Filter Hash Table Set Summary Cuckoo Distributor Membership Library
  • 6. 6 Library Usages? 100’s of usages for Membership Library in Wide Range of Applications Safe Browsing TCP Connection Tracker Wildcard Classification Database Semi-join operations Distributed web caching P2P Overlay Networks = Object Indexing Detecting loops in unicast and multicast routes Set intersections and keyword searches Heavy Hitters Flows Detection Network Statistics and summaries Signature Matching and packet inspection
  • 7. 7 Library Usages? 100’s too many to list Distributed Web Cache Set Summary Clients Distributed Web Cache Web Servers • Web proxies consult set summaries for each http request. • Element membership in the set-summary will determine response location. • For element hits, requests directed to a near cache and misses are forwarded to backend web servers. Routing Loop Detection and/or Network Statistics SET Packet SET Packet Encode ID • Node ID’s encoded in embedded set-summaries in the packet header • Instead of waiting for slow TTL, node checks membership in set- summaries. Misses indicate loop-free routing. • Idea can be generalized (for e.g. heavy hitters detection, ..etc.) to wide range of network stats.
  • 8. 8 Library Usages? 100’s too many to list Safe Browsing and/or Signature Matching • URLs membership checked against suspicious set-summary and misses indicate safe. • Same idea is applied in many signature matching IDS and deep packet inspection. Set Summary Lookup xyz.com? xyz.com suspicious? NO Probably Yes TCP Connection Tracker • Flow keys membership tested and misses indicate new flows. • Hits are forwarded to worker thread for in-order processing. Set Summary Flow Key New Flow = New Assignment Old Flow = forward to specific thread
  • 9. 9 Library Usages? 100’s too many to list ACL & Wild Card Flow Classification • Flow keys membership results are used to optimize search for wild card match Later Slides: Results of applying concept to OvS Set Summary Flow Key forward to specific sub-table Mask 1 Subtable Mask x Subtable New?
  • 10. Membership Library API Set-Summary Create Set-Summary Element Insertion Set-Summary Element Lookup Set-Summary Element Delete Reference: http://dpdk.org/doc/api/rte__member_8h_source.html Function shown is just for high-level description & not in accurate Syntax rte_member_create(rte_member_parameters); Parameters: Type, num_of_keys, key_length, number_of_sets, max_fp_rate, ..etc. rte_member_add (*set_sum, *key, set_id); A single key or a bulk of key lookup, return the first match or up to max matches per key 1. rte_member_lookup(*setsum, *key,*set_id) 2. rte_member_lookup_bulk(*setsum,*keys, *set_ids) 3. rte_member_lookup_multi(*setsum,*key, max_match_per_key, ..) 4. rte_member_lookup_multi_bulk(*setsum,*keys,..); Insert a key into a set_summary data structure and the value is pointing to a specific set_id. rte_member_delete(*setsum,*key,set_id) Delete a single key from a given set. Not all modes (e.g. vBF) support delete in current implementation.
  • 11. 11 POC: Open vSwitch Flow Lookup Mask N 1xxx xxxx 0xxx xxxx Flow Mask Mask L 01xx xxxx 10xx xxxx 1110 0000 110x xxxx 101x xxxx 111x xxxx 011x xxxx 1111 0000 1010 xxxx 0011 xxxx 1011 xxxx Rules Match Packet Header 1. Set of disjoint sub-table 2. Rule is only inserted into one sub-table (lookup terminates after first match) 3. Lookup is done by sequentially search each sub-table until a match is found
  • 12. 12 OVS with Two Layer Lookup using Membership Library Mask N 1xxx xxxx 0xxx xxxx Flow Mask Mask L 01xx xxxx 10xx xxxx 1110 0000 110x xxxx 101x xxxx 111x xxxx 011x xxxx 1111 0000 1010 xxxx 0011 xxxx 1011 xxxx Rules Match Packet Header 1st Level of Indirection Set Summary Provided by Membership Library 2X-3X Throughput Improvement for OvS using DPDK Membership Library Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz Hyper-Threading: disabled 0 1 2 3 4 5 6 MaxForwardingRate(MPPS) 20 Sub-Tables – 10K Flows – Uniform Traffic Orig OvS-DPDK OvS-DPDK + ML Library 2.7X • Membership library used to create a 1st level set- summary indirection • Flow Keys are looked up in set-summaries: • Hits: directs to the correct sub-table for searching (correct 97%) • Misses: “New” flow default sequential search & upcall if needed
  • 13. 13 Future Work • Applying Membership Library Optimization to other workloads. • Any Partners with huge list of Object ?? • Currently Working on ACL Library with high update rate based on tuple- search algorithm
  • 14. Legal Disclaimers No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps. Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at intel.com. © 2017 Intel Corporation. Intel, the Intel logo, Intel. Experience What’s Inside, and the Intel. Experience What’s Inside logo are trademarks of Intel. Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others.