SlideShare a Scribd company logo
Boris	Pismenny	(Mellanox)	
Declan	Doherty	(Intel)
Hemant	Agrawal	(NXP)
DPDK	Summit	- San	Jose	– 2017
rte_security: enabling
IPsec hw acceleration
#DPDKSummit
2
Introduction
u Framework	for	management	and	provisioning	 of	hardware	acceleration	of	
security	protocols.
u Generic	APIs	to	manage	security	sessions.
u Security	acceleration	functions	are	accessed	through	 security	instances	which		
can	instantiated	on	any	device	type,	current	supports	security	instances	on	
Crypto	and	Ethernet	devices.
u Rich	capabilities	discovery	APIs
u Current	only	targets	the	support	of	IP	Security	(IPsec)	protocol.	
u Could	support	 a	wide	variety	of	protocols/applications
u Enterprise/SMB VPNs — IPsec
u Wireless backhaul — IPsec, PDCP
u Data-center — SSL
u WLAN backhaul — CAPWAP/DTLS
u Control-plane options for above — PKCS, RNG
Net PMD
Security Library
Crypto PMD
3
Community Collaboration
u Collaborative	work	between	Intel,	Mellanoxand	NXP	with	contributions	from:
u Hemant	Agrawal,	Declan	Doherty,	Akhil	Goyal,	Radu	Nicolau,	Boris	Pismenny,	and	Aviad	Yehezkel.
u rte_security is	now	part	of	DPDK	17.11		as	*Experimenal*	API
4
Inline Crypto Acceleration
u IO	based	acceleration	performed	on	the	physical	interface	as	packet	ingress/egress	
the	system.
u No	packet	headers	modifications	on	the	hardware,	only	encryption/decryption	and	
authentication	operations	are	preformed.
u Hardware	may	support	extra	features	like	payload	padding,	setting	of	etc.
HOST
CRYPTO
IPSEC
POST-
CRYPTO
IPSEC
PRE-
CRYPTO
[	inline	crypto	==
Yes	]
SET	INLINE	
METADATA
L3/L2 PMDL3 IPSec
INLINE
CRYPTO
FILTER
EGRESS
INLINE	
CRYPTO
OTHER
PIPELINE
STAGES
SP/SA
LOOKUP
5
Lookaside Protocol Acceleration
u Lookaside	acceleration	model	where	packet	is	given	to	an	accelerator	for	
processing	and	then	returned	to	the	host	after	processing	is	complete.
u Security	function	is	provided	as	an	extension	of	a	librte_cryptodevcrypto	
PMD.	
u Security	session	is	used	in	place	of	crypto	session	in	crypto	op	when	enqueuingand	
dequeuingpackets	to	the	crypto	PMD.
u Supports	full	protocol	(IPsec)	processing	on	the	accelerator.	Including:
u Add/remove	protocol	headers
u Handling	SA	state	information
6
Library Features
u Protocol	agnostic	session	API	for	the	management	of	protocol	state	on	underlying	
hardware.
u Definitions	of	supported	protocols,	currently	only	IPsec,	and	the	parameters	for	
configuring	the	options.	For	IPsec	this	includes:
u Acceleration	type	– inline	crypto/lookaside	protocol/inline	protocol
u Defining	security	association	(SA)	parameters	such	as	Tunnel/Transport,	ESP/AH,	Ingress/Egress	as	
well	as	associated	crypto	processing	and	key	material
u Crypto	operations	are	defined	using	primitives	defined	in	librte_cryptodevlimit	any	
redefinition	of	parameters	within	DPDK.
u Capabilities	APIs	to	allow	dynamic	discovery	of	a	instances	features.
7
Session Management
/**	security	session	configuration	parameters	*/
struct rte_security_session_conf config =	{
.action_type =	RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,
/**<	Type	of	action	to	be	performed	on	the	session	*/
.protocol	=	RTE_SECURITY_PROTOCOL_IPSEC,
/**<	Security	protocol	to	be	configured	*/
.ipsec =	{
.spi =	/**<	Security	Protocol	Index	*/,
.salt	=	/**	Salt	value	*/,
.direction	=	RTE_SECURITY_IPSEC_SA_DIR_INGRESS,
.proto	=	RTE_SECURITY_IPSEC_SA_PROTO_ESP,
.mode	=	RTE_SECURITY_IPSEC_SA_MODE_TUNNEL	
},
/**<	Configuration	parameters	for	security	session	*/
.crypto_xform =	/**	crypto	transforms*/
/**<	Security	Session	Crypto	Transformations	*/
};
u Session	APIs	support
u Create	Session
struct rte_security_session *	
rte_security_session_create(uint16_t	id,
struct rte_security_session_conf *conf,
struct rte_mempool *mp);
u Update
u Destroy
u Query	(Get	Stats)
8
Flow Action Programming (Inline
Crypto)
Pattern[2]
Pattern[1]
/**	flow	parameters	*/
attr->ingress	=	1;	/**	attr->egress	=	1	*/
pattern[0].type	=	RTE_FLOW_ITEM_TYPE_ETH;
pattern[1].type	=	RTE_FLOW_ITEM_TYPE_IPV4;
pattern[2].type	=	RTE_FLOW_ITEM_TYPE_ESP;
pattern[3].type	=	RTE_FLOW_ITEM_TYPE_END;
action[0].type	=	RTE_FLOW_ACTION_TYPE_SECURITY;
action[0].conf =	sa->sec_session;
action[1].type	=	RTE_FLOW_ACTION_TYPE_	PASSTHRU;
action[2].type	=	RTE_FLOW_ACTION_TYPE_END;
HWSW
9
Summary
u Provides	an	abstraction	for	provisioning	security	hw accelerations,	
initially	targeting	IPsec.
u Can	be	used	with	ethdev and	cryptodev
u rte_security +	rte_flow =	powerful	control	plane
u Agnostic	API	to	allow	applications	to	use	different	security	accelerations.
u IPsec	Security	Gateway	Sample	application	is	available	today	using	
rte_security to	support	inline	crypto	(on	Intel’s	IXGBE	NET	PMD)	and	
lookaside	protocol	acceleration	(on	NXP’s	DPAA2	CRYPTO	PMD).
u Go	try	it	out!
10
Future Work
u Further	IPsec	enablement
u Further	encapsulations
u LSO	+	checksum
u IPsec	inline	protocol	offload
u Further	protocol	enablement
u MACsec,	PDCP,	DTLS,	etc would	fit	under	this	model.
u Software	equivalent	enablement
u It	could	be	possible	to	offer	software	equivalent	processing	under	this	API,	may	or	
may	not	be	desirable	depending	on	protocol	and	it’s	processing	overhead.
Questions?
Boris	Pismenny	(Mellanox)
Declan	Doherty	(Intel)
Hemant	Agrawal	(NXP)

More Related Content

PDF
LF_DPDK17_DPDK on Microsoft Azure
PDF
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
PDF
LF_DPDK17_Abstract APIs for DPDK and ODP
PDF
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
PPTX
Using SmartNICs to Provide Better Data Center Security - Jack Matheson - 44CO...
PDF
Intel- OpenStack Summit 2016/Red Hat NFV Mini Summit
PDF
KDDI - OpenStack Summit 2016/Red Hat NFV Mini Summit
PPTX
6WINDGate™ - Powering the New-Generation of IPsec Gateways
LF_DPDK17_DPDK on Microsoft Azure
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
Using SmartNICs to Provide Better Data Center Security - Jack Matheson - 44CO...
Intel- OpenStack Summit 2016/Red Hat NFV Mini Summit
KDDI - OpenStack Summit 2016/Red Hat NFV Mini Summit
6WINDGate™ - Powering the New-Generation of IPsec Gateways

What's hot (20)

PPTX
6WINDGate™ - Powering the New Generation of Network Appliances
PDF
Brocade Software Networking (SDN NFV Day ITB 2016)
PDF
Cisco - OpenStack Summit 2016/Red Hat NFV Mini Summit
PDF
DPDK Summit 2015 - Intro - Tim O'Driscoll
PDF
Presentación Laboratorio NFV de Telefónica de Antonio Elizondo
PDF
Network Function Virtualisation (NFV) BoF
PDF
Improving performance and efficiency with Network Virtualization Overlays
PDF
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
PDF
F5 perspective of nfv+sdn (SDN NFV Day ITB 2016)
PDF
Cto’s guide to sdn, nfv and vnf
PDF
MidoNet 101
PDF
2014년 오픈소스 기반 플랫폼 기술 세미나 - Let's Start NFV & SDN
PPTX
SDN & NFV: Driving Additional Value into Managed Services
PDF
9th SDN Expert Group Seminar - Session3
PDF
F5 Networks - - OpenStack Summit 2016/Red Hat NFV Mini Summit
PPTX
OpenContrail Silicon Valley Meetup Aug 25 2015
PDF
The Power of SmartNICs
PDF
DPDK Architecture Musings - Andy Harvey
PDF
Building the SD-Branch using uCPE
PDF
The NFV, SDN & Wireless Network Infrastructure Market: 2015 - 2020 - Opportun...
6WINDGate™ - Powering the New Generation of Network Appliances
Brocade Software Networking (SDN NFV Day ITB 2016)
Cisco - OpenStack Summit 2016/Red Hat NFV Mini Summit
DPDK Summit 2015 - Intro - Tim O'Driscoll
Presentación Laboratorio NFV de Telefónica de Antonio Elizondo
Network Function Virtualisation (NFV) BoF
Improving performance and efficiency with Network Virtualization Overlays
Red hat NFV Roadmap - OpenStack Summit 2016/Red Hat NFV Mini Summit
F5 perspective of nfv+sdn (SDN NFV Day ITB 2016)
Cto’s guide to sdn, nfv and vnf
MidoNet 101
2014년 오픈소스 기반 플랫폼 기술 세미나 - Let's Start NFV & SDN
SDN & NFV: Driving Additional Value into Managed Services
9th SDN Expert Group Seminar - Session3
F5 Networks - - OpenStack Summit 2016/Red Hat NFV Mini Summit
OpenContrail Silicon Valley Meetup Aug 25 2015
The Power of SmartNICs
DPDK Architecture Musings - Andy Harvey
Building the SD-Branch using uCPE
The NFV, SDN & Wireless Network Infrastructure Market: 2015 - 2020 - Opportun...
Ad

Similar to LF_DPDK17_rte_security: enhancing IPSEC offload (20)

PDF
Working Survey of Authentication Header and Encapsulating Security Payload
DOCX
college assignment on Applications of ipsec
PDF
I psec cisco
PDF
IP security and VPN presentation
PDF
Cns unit4
PDF
Cns unit4
DOC
Resume_Appaji
PPT
PPT
Sectools
PPTX
Lec 9.pptx
PPT
Blug Talk
PPT
PDF
Stay Anonymous and Protected.pdf
PPTX
Network Security version Virtual Private Networks
DOCX
Kasturi_Puramwar
PDF
Wrapped rsa cryptography check on window
PPTX
VPN in Virtualized DataCenter
Working Survey of Authentication Header and Encapsulating Security Payload
college assignment on Applications of ipsec
I psec cisco
IP security and VPN presentation
Cns unit4
Cns unit4
Resume_Appaji
Sectools
Lec 9.pptx
Blug Talk
Stay Anonymous and Protected.pdf
Network Security version Virtual Private Networks
Kasturi_Puramwar
Wrapped rsa cryptography check on window
VPN in Virtualized DataCenter
Ad

More from LF_DPDK (20)

PDF
LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
PDF
LF_DPDK17_Integrating and using DPDK with Open vSwitch
PDF
LF_DPDK17_ OpenVswitch hardware offload over DPDK
PDF
LF_DPDK17_DPDK support for new hardware offloads
PDF
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
PDF
LF_DPDK17_Lagopus Router
PDF
LF_DPDK17_DPDK Membership Library
PDF
LF_DPDK17_testpmd: swissknife for NFV
PDF
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
PDF
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
PDF
LF_DPDK17_VPP Host Stack
PDF
LF_DPDK17_Accelerating Packet Processing with FPGA NICs
PDF
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
PDF
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
PDF
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
PDF
LF_DPDK17_Technical Roadmap
PDF
LF_DPDK_Mellanox bifurcated driver model
PDF
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
PDF
LF_DPDK17_mediated devices: better userland IO
PDF
LF_DPDK17_Enhanced Memory Management
LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK17_DPDK support for new hardware offloads
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK17_Lagopus Router
LF_DPDK17_DPDK Membership Library
LF_DPDK17_testpmd: swissknife for NFV
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_VPP Host Stack
LF_DPDK17_Accelerating Packet Processing with FPGA NICs
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
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_Technical Roadmap
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_Enhanced Memory Management

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
TLE Review Electricity (Electricity).pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Tartificialntelligence_presentation.pptx
Mushroom cultivation and it's methods.pdf
Programs and apps: productivity, graphics, security and other tools
Assigned Numbers - 2025 - Bluetooth® Document
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
WOOl fibre morphology and structure.pdf for textiles
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A novel scalable deep ensemble learning framework for big data classification...
MIND Revenue Release Quarter 2 2025 Press Release
Group 1 Presentation -Planning and Decision Making .pptx
Enhancing emotion recognition model for a student engagement use case through...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
SOPHOS-XG Firewall Administrator PPT.pptx
Zenith AI: Advanced Artificial Intelligence
Web App vs Mobile App What Should You Build First.pdf
Getting Started with Data Integration: FME Form 101
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
TLE Review Electricity (Electricity).pptx

LF_DPDK17_rte_security: enhancing IPSEC offload

  • 2. 2 Introduction u Framework for management and provisioning of hardware acceleration of security protocols. u Generic APIs to manage security sessions. u Security acceleration functions are accessed through security instances which can instantiated on any device type, current supports security instances on Crypto and Ethernet devices. u Rich capabilities discovery APIs u Current only targets the support of IP Security (IPsec) protocol. u Could support a wide variety of protocols/applications u Enterprise/SMB VPNs — IPsec u Wireless backhaul — IPsec, PDCP u Data-center — SSL u WLAN backhaul — CAPWAP/DTLS u Control-plane options for above — PKCS, RNG Net PMD Security Library Crypto PMD
  • 3. 3 Community Collaboration u Collaborative work between Intel, Mellanoxand NXP with contributions from: u Hemant Agrawal, Declan Doherty, Akhil Goyal, Radu Nicolau, Boris Pismenny, and Aviad Yehezkel. u rte_security is now part of DPDK 17.11 as *Experimenal* API
  • 4. 4 Inline Crypto Acceleration u IO based acceleration performed on the physical interface as packet ingress/egress the system. u No packet headers modifications on the hardware, only encryption/decryption and authentication operations are preformed. u Hardware may support extra features like payload padding, setting of etc. HOST CRYPTO IPSEC POST- CRYPTO IPSEC PRE- CRYPTO [ inline crypto == Yes ] SET INLINE METADATA L3/L2 PMDL3 IPSec INLINE CRYPTO FILTER EGRESS INLINE CRYPTO OTHER PIPELINE STAGES SP/SA LOOKUP
  • 5. 5 Lookaside Protocol Acceleration u Lookaside acceleration model where packet is given to an accelerator for processing and then returned to the host after processing is complete. u Security function is provided as an extension of a librte_cryptodevcrypto PMD. u Security session is used in place of crypto session in crypto op when enqueuingand dequeuingpackets to the crypto PMD. u Supports full protocol (IPsec) processing on the accelerator. Including: u Add/remove protocol headers u Handling SA state information
  • 6. 6 Library Features u Protocol agnostic session API for the management of protocol state on underlying hardware. u Definitions of supported protocols, currently only IPsec, and the parameters for configuring the options. For IPsec this includes: u Acceleration type – inline crypto/lookaside protocol/inline protocol u Defining security association (SA) parameters such as Tunnel/Transport, ESP/AH, Ingress/Egress as well as associated crypto processing and key material u Crypto operations are defined using primitives defined in librte_cryptodevlimit any redefinition of parameters within DPDK. u Capabilities APIs to allow dynamic discovery of a instances features.
  • 7. 7 Session Management /** security session configuration parameters */ struct rte_security_session_conf config = { .action_type = RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO, /**< Type of action to be performed on the session */ .protocol = RTE_SECURITY_PROTOCOL_IPSEC, /**< Security protocol to be configured */ .ipsec = { .spi = /**< Security Protocol Index */, .salt = /** Salt value */, .direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS, .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP, .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL }, /**< Configuration parameters for security session */ .crypto_xform = /** crypto transforms*/ /**< Security Session Crypto Transformations */ }; u Session APIs support u Create Session struct rte_security_session * rte_security_session_create(uint16_t id, struct rte_security_session_conf *conf, struct rte_mempool *mp); u Update u Destroy u Query (Get Stats)
  • 8. 8 Flow Action Programming (Inline Crypto) Pattern[2] Pattern[1] /** flow parameters */ attr->ingress = 1; /** attr->egress = 1 */ pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH; pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4; pattern[2].type = RTE_FLOW_ITEM_TYPE_ESP; pattern[3].type = RTE_FLOW_ITEM_TYPE_END; action[0].type = RTE_FLOW_ACTION_TYPE_SECURITY; action[0].conf = sa->sec_session; action[1].type = RTE_FLOW_ACTION_TYPE_ PASSTHRU; action[2].type = RTE_FLOW_ACTION_TYPE_END; HWSW
  • 9. 9 Summary u Provides an abstraction for provisioning security hw accelerations, initially targeting IPsec. u Can be used with ethdev and cryptodev u rte_security + rte_flow = powerful control plane u Agnostic API to allow applications to use different security accelerations. u IPsec Security Gateway Sample application is available today using rte_security to support inline crypto (on Intel’s IXGBE NET PMD) and lookaside protocol acceleration (on NXP’s DPAA2 CRYPTO PMD). u Go try it out!
  • 10. 10 Future Work u Further IPsec enablement u Further encapsulations u LSO + checksum u IPsec inline protocol offload u Further protocol enablement u MACsec, PDCP, DTLS, etc would fit under this model. u Software equivalent enablement u It could be possible to offer software equivalent processing under this API, may or may not be desirable depending on protocol and it’s processing overhead.