gRPC	stack	supporting	Intel	
Resource	Director	
technology	(RDT)	
	
Anthony	Chow	
Sept	18,	2017
Project	Description		
	
•  Network	Func-ons	Virtualiza-on	(	NFV	)	and	Service	
Func-on	Chaining	(	SFC	)	have	moved	from	idea	to	POC	to	
implementaBon	stage	.	The	challenge	sBll	remains	to	get	bare	
metal	performance	from	virtual	machines	.		
•  Resource	Director	Technology	(RDT)	from	Intel	is	designed	to	
bring	in	QoS	to	the	virtual	machine	resources.		
•  gRPC	from	Google	is	a	framework	which	could	be	used	to	
design	priority	based	services	.		
•  This	project	integrates	these	technologies	and	creates	a	
framework	for	more	reliable	and	efficient	services	via	gRPC	
enhanced	with	RDT.
gRPC	
•  gRPC	can	be	summarized	as	protocol	buffers	running	over	
HTTP/2	with	mulBple	programming	language	support.
Protocol	Buffer	
•  Protocol	buffer	is	one	form	of	Interface	DefiniBon	Language	
for	structured	data	serializaBon	and	de-serializaBon	between	
two	parBes	and	are	transmiYed	over	a	network	in	binary	
forms.
HTTP/2	
•  Hypertext	Transfer	Protocol	Version	2	(HTTP/2)	is	defined	by	
RFC	7540	aimed	at	providing	beYer	performance	for	HTTP	
traffics	with	bi-direcBonal	streaming	and	flow	control	on	a	
single	TCP	connecBon.
Multi-language	Support	
•  gRPC	has	a	command	line	compiler	to	generate	stubs	and	
code	in	different	languages	that	can	be	used	for	the	gRPC	
client	and	server.	This	feature	facilitates	the	gRPC	code	to	be	
up	and	running	rapidly.
gRPC	Message	types	
•  Unary	
•  Client	Streaming	
•  Server	Streaming	
•  Bi-direcBonal	Streaming
gRPC	WorkFlow
Resource	Director	Technology	
•  Provides	hardware	framework	for	monitoring	and	control		
•  Consist	of:	
Ø 	Cache	Monitoring	Technology	(CMT)	
Ø 	Cache	AllocaBon	Technology	(CAT)	
Ø 	Memory	Bandwidth	Monitoring	(MBM)	
Ø 	Code	and	Data	PrioriBzaBon	(CDP)	
•  Integrated	in	the	Linux	Kernel	4.10	(MBA	for	4.12).	
•  hYps://github.com/01org/intel-cmt-cat
Source:	Intel
Source:	Intel
Source:	Intel
Integrate	gRPC	with	RDT	
•  ApplicaBon,	Virtual	Machine	or	Container	is	the	gRPC	client	
•  gRPC	server	is	a	process/task	running	on	OS	of	the	host	or	
hypervisor	to	interact	with	RDT.

gRPC stack supporting Intel Resource Director technology (RDT)