SlideShare a Scribd company logo
19	
  Feb.	
  2015	
  
Miya	
  Kohno,	
  miya.kohno@gmail.com	
  
“Declarative Programming” and a form of SDN	

Network Programmability Study Group Workshop #3	

http://network-programmability.connpass.com/
About me	

•  Miya	
  Kohno,	
  Principal	
  Engineer,	
  Cisco	
  Systems	
  
•  Used	
  to	
  be	
  a	
  soDware	
  engineer	
  
- Love	
  of	
  Programming	
  style	
  discussion	
 
•  ADer	
  that,	
  I	
  have	
  been	
  a	
  network	
  engineer	
  
- Protocol	
  	
  
- Network	
  Architecture	
 
•  Official	
  Blog	
  
- hPp://gblogs.cisco.com/jp/author/miyakohno/	
  
•  TwiPer	
  
@mkohno	
  
Agenda	

•  Programming	
  Paradigm	
  Discussion	
  in	
  the	
  Networking	
  
Discipline	
  
•  A	
  Form	
  of	
  SDN
Open	
  Daylight	
  -­‐-­‐	
  BGP-­‐LS/PCEP and	
  MD-­‐SAL	
  
What is Network Programmability ?!	

•  Neutron	

I E T F	

	

•  NETCONF/YANG	
  
•  I2RS	
  
•  FORCES	
  
•  + and	
  any	
  network	
  protocols	
  !	
  	
  
To	
  be	
  Programmed	
  /	
  
Orchestrated	
  by	
  Network	
  
Engineers
To	
  Program	
  Network	
  Devices	
  (Virtual,	
  
Physical)
Programming Paradigm Trend 
in the Networking Discipline (hypothesis)	

•  Not	
  Impera^ve	
  but	
  Declara7ve	
  
	
  
•  Not	
  Procedural	
  but	
  Model	
  driven	
  
	
  
•  Not	
  Waterfall	
  but	
  Agile	
  
What’s Declarative Programming ?	

•  A	
  program	
  that	
  describes	
  what	
  computa^on	
  should	
  be	
  performed	
  and	
  
not	
  how	
  to	
  compute	
  it	
  
	
  
•  Any	
  programming	
  language	
  that	
  lacks	
  side	
  effects	
  (or	
  more	
  specifically,	
  
is	
  referen^ally	
  transparent)	
  
	
  
•  A	
  language	
  with	
  a	
  clear	
  correspondence	
  to	
  mathema^cal	
  logic	
  
http://en.wikipedia.org/wiki/Declarative_programming	

Any	
  style	
  of	
  programming	
  that	
  is	
  not	
  impera^ve	
  
What’s Declarative Programming ?	

http://karari.tumblr.com/post/61067682037/clojure	

“Add	
  all	
  the	
  integers	
  from	
  1	
  to	
  10”	
  
Impera^ve	
  code	
  
var s = 0;!
for(var n=1; n=10; n++)!
{!
s = s + n; !
}!
console.log(s);!
//55!
Declara^ve	
  code	
  
(- (range 1 11)!
(reduce +)!
(println)!
)!
//55!
Flowchart	
  !	
   Model	
  !!	
  
n	
  =	
  10	
  ?	
  	
  
•  Add	
  
•  increment	
  n	
  
1	
  ...	
  10	
  
A set of the integers	

range : 1…10	

sum
What’s Declarative Programming ?	

Lack	
  of	
  side	
  effect	
  :	
  
	
  	
  Referen^ally	
  Transparent,	
  Idempotent	
  	
  
Referen^al	
  Transparency	
  
	
  
A	
  property	
  whereby	
  an	
  expression	
  can	
  be	
  replaced	
  by	
  its	
  value	
  without	
  
affec^ng	
  the	
  program	
  
	
  
e.g.	
  to	
  use	
  global	
  variables	
  makes	
  it	
  referen^ally	
  opaque	
  
Idempotence	
  
	
  
A	
  quality	
  of	
  an	
  ac^on	
  such	
  that	
  repe^^ons	
  of	
  the	
  ac^on	
  have	
  no	
  further	
  effect	
  on	
  
outcome	
  
	
  
e.g.	
  n++;	
  (incremen^ng)	
  is	
  not	
  idempotent
à	
  These	
  concepts	
  are	
  important	
  for	
  networking	
  compu^ng	
  /	
  distributed	
  
parallel	
  compu^ng,	
  where	
  environment	
  is	
  uncertain	
  and	
  such	
  things	
  like	
  
retries	
  or	
  duplicates	
  could	
  more	
  likely	
  happen..	
  
Idempotence	

group{'sysadmin':!
!ensure=present!
}!
# First Puppet Run!
notice: /Group[sysadmin]/ensure: created!
notice: Finished catalog run in 0.08 seconds!
!
# Second Puppet Run!
notice: Finished catalog run in 0.03 seconds!
An	
  example	
  from	
  Puppet	
  
To	
  state	
  the	
  desired	
  
status	
  =	
  “present”	
  
The	
  second	
  run	
  is	
  not	
  
executed,	
  because	
  it	
  is	
  
already	
  “present”	
  
We	
  could	
  do	
  this	
  using	
  Shell	
  Script(Impera^ve),	
  but	
  with	
  condi^onal	
  branches..	
  	
  	
  
if[`getentgroupsysadmin|awk-F:'{print$1}'`==]!
!then!
! !groupaddsysadmin!
fi!
What’s Declarative Programming ?	

[Pros]	
  
•  Robustness	
  and	
  Scalability	
  
-­‐  In	
  uncertain	
  and	
  complex	
  environments	
  
-­‐  In	
  distributed	
  parallel	
  systems	
  
•  Reusability,	
  Maintainability	
  
[Cons]	
  
•  Tend	
  to	
  be	
  Turing	
  incomplete	
  
•  BePer	
  to	
  restrict	
  domain/scope	
  
•  Not	
  good	
  at	
  controlling	
  details	
  	
  
To	
  agree	
  on	
  	
  
“what”	
  
Model	
  
Referen^al	
  
Transparence	
  
and	
  
Idempotence	
  
Turing completeness? 	

•  Defini^on	
  of	
  Turing	
  completeness	
  
	
  
-  A	
  computa^onal	
  system	
  that	
  can	
  compute	
  every	
  Turing-­‐computable	
  
func^on	
  is	
  called	
  Turing	
  complete	
  (or	
  Turing	
  powerful).	
  Alterna^vely,	
  
such	
  a	
  system	
  is	
  one	
  that	
  can	
  simulate	
  a	
  universal	
  Turing	
  machine.	
  
hPp://en.wikipedia.org/wiki/Turing_completeness	
  
-  Impera^ve	
  languages	
  are	
  all	
  Turing	
  complete.	
  (e.g.	
  C,	
  Java,	
  Perl,	
  PHP,	
  
Python..)	
  
	
  
•  Declara^ve	
  languages	
  tend	
  to	
  be	
  Turing	
  incomplete	
  
-  It	
  does	
  not	
  mean	
  Declara^ve	
  languages	
  cannot	
  be	
  Turing	
  complete.	
  
	
  
-  It’s	
  bePer	
  not	
  to	
  be	
  universally	
  powerful.	
  Instead,	
  by	
  limi^ng	
  the	
  
scope	
  or	
  context,	
  the	
  power	
  of	
  declara^veness	
  would	
  be	
  op^mized.	
  
	
  	
  	
  	
  	
  	
  	
  (e.g.	
  SQL,	
  HTML,	
  JSON,	
  YANG..)	
  
What’s Declarative Programming ?	

Impera^ve	
   Declara^ve	
  
Programming	
  
Language	
  
•  Procedural	
  
Programming	
  
•  Func^onal	
  Programming	
  
•  Domain	
  Specific	
  
Language	
  
Network	
  Control	
   •  Openflow	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  OVS	
   •  DB	
  
•  NETCONF/RESTCONF	
  
•  Control	
  Plane	
  Protocols	
  
Orchestra^on/
Automa^on	
  
•  Workflow	
   •  Model-­‐driven	
  
Configura^on	
  
Management	
  
•  Script	
   •  Puppet	
  
•  CFEngine	
  
	
  
•  OVSDB	
  
Transport	
  
Assurance	
  
Orchestra^on	
  
Control	
  
Infrastructure	
  
•  Physical	
  
•  Virtual	
  
virtual	
   physical	
  
Service	
  
Applica^on	
  
Forwarding	
  Plane	
  
(Distributed)	
  Control	
  Plane	
  
(Centralized)	
  Control	
  Plane	
  
Domain	
  Orchestra^on	
  
Service	
  Orchestra^on	
  
Service,	
  Applica^on	
  
Hierarchy in Network Programmability	

Various	
  forms	
  of	
  
Programmability	
  
•  Addi^on	
  of	
  Model	
  Driven	
  SAL(Service	
  Adapta^on	
  Layer)	
  
•  Various	
  Southbound	
  Protocol	
  (BGP-­‐LS,	
  PCEP..)	
  
•  Supports	
  both	
  physical	
  and	
  virtual	
  devices	
  
E.g. OpenDaylight Controller Architecture	

http://www.opendaylight.org/	

Declara^ve	
  
Impera^ve	
  
•  NFVO	
  (NFV	
  Service	
  Orchestrator)	
  	
  
•  VNFM	
  (VNF	
  Manager)	
  
•  VIM	
  (Virtual	
  Infrastructure	
  Manager)	
  –	
  Openstack,	
  etc.	
  
E.g. ETSI NFV Orchestration Architecture	

Imperative	

BSS	
  
EMS1	
  
Virtualiza^on	
  Layer	
  
VNFM	
  
VIM	
  
Virtual	
  
Compu^ng	
  
Virtual	
  
Storage	
  
Virtual	
  
Networ
k	
  
NFVO	
  
NFVI	
  
NFV	
  
Management	
  
and	
  
Orchestra^on	
  
(Mano)	
  
Compu^ng	
  
Hardware	
  
Storage	
  
Hardware	
  
Network	
  
Hardware	
  
VNF1	
   VNF2	
   VNF3	
  
Tail-­‐f	
  NCS	
  EMS1	
   EMS1	
  
OSS	
  
SID	
  
Workflow	
  
Script	
  
YANG	
  Model	
  
VNF,	
  VNFM	
  
	
  Interface	
  Defini^ons	
  
YANG	
  Model	
  
Service	
  Defini^ons	
  
Declarative
Imperative vs Declarative – which fits where	

•  For	
  determinis^c	
  environment	
  
 à	
  Impera^ve	
  
•  For	
  uncertain(*)	
  environment	
  
  à	
  Declara^ve	
  
	
  
(*)	
  What	
  causes	
  uncertainty	
  
•  Logical	
  and	
  physical	
  distance	
  
•  Scale-­‐up,	
  Growth	
  
•  Various	
  kind	
  of	
  components	
  
•  Distributed	
  parallel	
  systems	
  
•  Mul^-­‐agent	
  system	
  
(Appendix) Programming Paradigm discussion in
Computing discipline	

Object	
  Oriented	
  
Procedural	
  
Declara^ve,	
  
Func^onal	
  
Conflict	
  ?!	
  
•  Object	
  Oriented	
  and	
  Func^onal	
  Programming	
  are	
  conflic^ng.	
  
•  Due	
  to	
  the	
  difference	
  of	
  the	
  principles?	
  	
  
Impera^ve	
  
Declara^ve	
  
(Appendix) Imperative vs Declarative discussion in
Cloud Management area	

hPp://docs.oasis-­‐open.org/tosca/TOSCA/v1.0/
cs01/TOSCA-­‐v1.0-­‐cs01.pdf	
  
Proceedings	
  of	
  the	
  IEEE	
  Interna^onal	
  Conference	
  on	
  Cloud	
  
Engineering	
  (IEEE	
  IC2E	
  2014)}	
  March	
  2014,	
  p87-­‐96,	
  DOI	
  10.1109/IC2E.
2014.56	
  
(Appendix – yet another icing on the cake) 
Human and Machine	

Impera^ve	
  Paradigm	
  
	
  
•  Human	
  who	
  writes	
  program	
  knows	
  everything	
  
	
  
Declara^ve	
  Paradigm	
  
	
  
•  Human	
  may	
  NOT	
  know	
  everything	
  
-­‐  Machine	
  learning/Deep	
  Learning	
  
-­‐  Agent	
  based	
  system	
  
	
  
•  Network	
  centric	
  programming	
  
-­‐  A	
  module	
  to	
  program	
  another	
  module	
  via	
  network	
  
	
  
Agenda	

•  Programming	
  Paradigm	
  Discussion	
  in	
  the	
  Networking	
  
Discipline	
  
•  A	
  Form	
  of	
  SDN
Open	
  Daylight	
  -­‐-­‐	
  BGP-­‐LS/PCEP and	
  MD-­‐SAL	
  
“Network” 
from the viewpoint of Network Engineers ?!	

Network	
  Engineers’	
  view	
  
Image	
  source	
  :	
  
	
  hPp://www.dreams^me.com/royalty-­‐free-­‐stock-­‐images-­‐3d-­‐white-­‐people-­‐system-­‐administrator-­‐image28585969,	
  	
  
hPp://www.sudarshansoDech.com/chnt3.htm	
  
node	
  
link	
  
•  Only	
  if	
  we	
  announce	
  the	
  
endpoint	
  informa^on	
  and	
  
requirements,	
  	
  
•  Then	
  it	
  will	
  be	
  connected!	
  
GW	
  
•  IP	
  addr/subnet	
  
•  vlan	
  
•  port	
  
External	
  Network	
  
Internal	
  Network	
   Security	
  
Server	
  Engineers’	
  view	
  
•  Network	
  consists	
  of	
  nodes	
  and	
  
links.	
  
•  Topology	
  maPers,	
  Bandwidth	
  
maPers..	
  
•  Cost,	
  Delay,	
  JiPer	
  trade-­‐offs..	
  
BGP−LS and PCEP – SDN for Network Engineering	

R5	
  
R6	
  
R7	
  
R3	
  
R4	
  
R1	
  
R2	
  
SDN	
  Controller	
  
Programming	
  CollecIon	
  
NB	
  interface	
  
PCEP	
  BGP-­‐LS,	
  
etc	
  
Conges^on!	
  
TE	
  Path	
  calcula^on	
  and	
  setup	
  
Collect	
  informa^on:	
  
Topology,	
  Bandwidth,	
  Usage..	
   •  Path	
  to	
  sa^sfy	
  SLA	
  
•  Disjoint	
  paths	
  based	
  on	
  QoS	
  
requirements	
  
•  TCP	
  MD5	
  Signature	
  Op^on	
  (rfc2385)	
  has	
  become	
  separated	
  from	
  BGPCEP	
  project	
  
•  SDNi(SDN	
  interface)	
  depends	
  on	
  BGP	
  implementa^on	
  
Implementation of BGP-LS, PCEP in Open Daylight	

http://www.opendaylight.org/
Topology Learning by BGP-LS	

https://wiki.opendaylight.org/images/e/e3/
Os2014-md-sal-tutorial.pdf
Path (Tunnel) setup by PCEP	

https://wiki.opendaylight.org/view/BGP_LS_PCEP:Programmer_Guide	

R5	
  
R6	
  
R7	
  
R3	
  
R4	
  
R1	
  
R2	
  
SDN	
  Controller	
  
Programming	
  CollecIon	
  
NB	
  interface	
  
PCEP	
  BGP-­‐LS,	
  etc	
  
•  draD-­‐ie|-­‐pce-­‐stateful-­‐pce-­‐02	
  and	
  draD-­‐crabbe-­‐ini^ated-­‐00	
  
•  draD-­‐ie|-­‐pce-­‐stateful-­‐pce-­‐07,	
  draD-­‐ie|-­‐pce-­‐pce-­‐ini^ated-­‐lsp-­‐00	
  
•  draD-­‐sivabalan-­‐pce-­‐segment-­‐rou^ng-­‐02	
  
Create	
   node,	
  name,	
  
arguments,	
  endpoints-­‐obj,	
  
ero,	
  lsp	
  
Update	
   node,	
  name,	
  
arguments,	
  opera^onal,	
  
ero,	
  lsp	
  
Remove	
   node,	
  name	
  
(Appendix: Segment Routing)	

	
  
Controller	
  
	
  
	
  DC	
  
Cross	
  Domain	
  
Orchestra^on	
  
IPv4/IPv6	
  
MPLS	
  
Network	
  
DC	
  	
  	
  
Controller	
  
Segment	
  
RouIng	
  
One	
  Collector	
  
APIs	
  
MPLS	
   Segment	
  RouIng	
  
Control	
  Plane	
   LDP	
  and	
  RSVP	
  for	
  
Label	
  distribu^on	
  
IGP	
  extension	
  to	
  
distribute	
  Segment	
  
ID	
  
	
  
Traffic	
  
Engineering	
  
RSVP	
  TE	
  signaling	
   Explicit	
  path	
  is	
  
expressed	
  by	
  
header	
  stack	
  
ProtecIon	
   RSVP	
  TE	
  FRR	
  
(IP	
  FRR/LFA	
  has	
  
topology	
  
restric^on)	
  
Topology-­‐
Independent	
  FRR	
  
•  Simple	
  
•  No	
  extra	
  control	
  plane	
  (RSVP,	
  LDP)	
  	
  
•  No	
  RSVP	
  state	
  in	
  the	
  network	
  
•  Applica^on	
  centric	
  
Model Driven SAL	

http://www.opendaylight.org/	

AD-­‐SAL	
   MD-­‐SAL	
  
•  The	
  Model-­‐driven	
  approach	
  to	
  service	
  abstrac^on	
  presents	
  an	
  opportunity	
  to	
  
unify	
  both	
  northbound	
  and	
  southbound	
  APIs	
  and	
  the	
  data	
  structures	
  used	
  in	
  
various	
  services	
  and	
  components	
  of	
  an	
  SDN	
  Controller.	
  
Model-Driven SAL	

28	
  
	
  
module	
  topology-­‐tunnel-­‐pcep-­‐programming	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  yang-­‐version	
  1;	
  
	
  	
  	
  	
  	
  	
  	
  	
  namespace	
  urn:opendaylight:params:xml:ns:yang:topology:tunnel:pcep:programming;	
  
	
  	
  	
  	
  	
  	
  	
  	
  prefix	
  ttpp;	
  
	
  
	
  	
  	
  	
  import	
  pcep-­‐types	
  {	
  prefix	
  pcep;	
  revision-­‐date	
  2013-­‐10-­‐05;	
  }	
  
	
  	
  	
  	
  import	
  topology-­‐tunnel-­‐programming	
  {	
  prefix	
  ttp;	
  revision-­‐date	
  2013-­‐09-­‐30;	
  }	
  
	
  	
  	
  	
  import	
  topology-­‐tunnel-­‐p2p	
  {	
  prefix	
  p2p;	
  revision-­‐date	
  2013-­‐08-­‐19;	
  }	
  
	
  	
  	
  	
  import	
  topology-­‐tunnel-­‐pcep	
  {	
  prefix	
  ptp;	
  revision-­‐date	
  2013-­‐08-­‐20;	
  }	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  organization	
  Cisco	
  Systems,	
  Inc.;	
  
	
  	
  	
  	
  	
  	
  	
  	
  contact	
  Robert	
  Varga	
  rovarga@cisco.com;	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  description	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  This	
  module	
  contains	
  the	
  programming	
  extensions	
  for	
  tunnel	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  topologies.	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Copyright	
  (c)2013	
  Cisco	
  Systems,	
  Inc.	
  All	
  rights	
  reserved.	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  This	
  program	
  and	
  the	
  accompanying	
  materials	
  are	
  made	
  available	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  under	
  the	
  terms	
  of	
  the	
  Eclipse	
  Public	
  License	
  v1.0	
  which	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  accompanies	
  this	
  distribution,	
  and	
  is	
  available	
  at	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  http://www.eclipse.org/legal/epl-­‐v10.html;	
  
	
  
	
  	
  	
  	
  rpc	
  pcep-­‐create-­‐p2p-­‐tunnel	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  input	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:create-­‐p2p-­‐tunnel-­‐input;	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  p2p:tunnel-­‐p2p-­‐path-­‐cfg-­‐attributes;	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ptp:tunnel-­‐pcep-­‐link-­‐cfg-­‐attributes;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  	
  	
  	
  	
  output	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:create-­‐p2p-­‐tunnel-­‐output;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  	
  	
  rpc	
  pcep-­‐destroy-­‐tunnel	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  input	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:destroy-­‐tunnel-­‐input;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  	
  	
  	
  	
  output	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:destroy-­‐tunnel-­‐output;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  	
  	
  rpc	
  pcep-­‐update-­‐tunnel	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  input	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:base-­‐tunnel-­‐input;	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  p2p:tunnel-­‐p2p-­‐path-­‐cfg-­‐attributes;	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ptp:tunnel-­‐pcep-­‐link-­‐cfg-­‐attributes;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  	
  	
  	
  	
  output	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  uses	
  ttp:base-­‐tunnel-­‐output;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }!
}!
Yang	
  
Tools	
  
Plugin	
   Plugin	
  
Model	
   topology-tunnel-pcep-programming.yang	

APIs	
  
Model-Driven SAL	

•  Controller	
  SAL	
  to	
  communicate	
  with	
  other	
  controller	
  components,	
  
applica^ons,	
  and	
  plugins.	
  	
  
Controller	
  SAL	
  
Why Model?	

•  Model	
  is	
  a	
  representa^on	
  of	
  a	
  part	
  of	
  the	
  func^on,	
  structure	
  
and/or	
  behavior	
  of	
  a	
  system	
  (*)	
  
(*)	
  Architectural	
  Board	
  	
  ORMSC,	
  “Model	
  Driven	
  Architecture”,	
  July	
  2001	
  
•  Advantage	
  of	
  Model	
  
•  Declara^ve	
  
  Agree	
  on	
  “what”,	
  not	
  “how”	
  
•  Commonality	
  
 Abstract	
  diversity	
  
•  Reusability,	
  Maintainability,	
  Portability	
  
  Conversion	
  from	
  model	
  to	
  model	
  
•  Robustness	
  in	
  uncertain	
  environment	
  
Agenda	

•  Programming	
  Paradigm	
  Discussion	
  in	
  the	
  Networking	
  
Discipline	
  
•  A	
  Form	
  of	
  SDN
Open	
  Daylight	
  -­‐-­‐	
  BGP-­‐LS/PCEP and	
  MD-­‐SAL	
  
Declara^ve	
  programming	
  and	
  Model-­‐drivenness	
  has	
  
an	
  advantage	
  in	
  networking	
  compu^ng,	
  where	
  the	
  
environment	
  is	
  more	
  uncertain.	
  	
  
Thank you !

More Related Content

What's hot

Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
Till Rohrmann
 
LCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project UpdateLCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project Update
Linaro
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?
salv_orlando
 
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
Brocade
 
ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014
Michael Christofferson
 
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops FrameworkToward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
LibbySchulze
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
Ghodhbane Mohamed Amine
 
Graphical packet generator
Graphical packet generatorGraphical packet generator
Graphical packet generator
tusharjadhav2611
 
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang WangVirtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Flink Forward
 
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
José Román Martín Gil
 
Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.
Nagasuri Bala Venkateswarlu
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9
ONOS Project
 
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
Flink Forward
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward
 
SDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentosSDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentos
Christian Esteve Rothenberg
 
Open source cloud native security with threat mapper
Open source cloud native security with threat mapperOpen source cloud native security with threat mapper
Open source cloud native security with threat mapper
LibbySchulze
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward
 
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca AntigaServing Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Redis Labs
 
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward
 
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Towards Flink 2.0:  Unified Batch & Stream Processing - Aljoscha Krettek, Ver...Towards Flink 2.0:  Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Flink Forward
 

What's hot (20)

Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
Future of Apache Flink Deployments: Containers, Kubernetes and More - Flink F...
 
LCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project UpdateLCA14: LCA14-209: ODP Project Update
LCA14: LCA14-209: ODP Project Update
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?
 
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
Recent Advances in Machine Learning: Bringing a New Level of Intelligence to ...
 
ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014ODP Presentation LinuxCon NA 2014
ODP Presentation LinuxCon NA 2014
 
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops FrameworkToward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
Graphical packet generator
Graphical packet generatorGraphical packet generator
Graphical packet generator
 
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang WangVirtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang
 
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
 
Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9
 
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
Flink Forward San Francisco 2019: Towards Flink 2.0: Rethinking the stack and...
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
 
SDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentosSDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentos
 
Open source cloud native security with threat mapper
Open source cloud native security with threat mapperOpen source cloud native security with threat mapper
Open source cloud native security with threat mapper
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
 
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca AntigaServing Deep Learning Models At Scale With RedisAI: Luca Antiga
Serving Deep Learning Models At Scale With RedisAI: Luca Antiga
 
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
 
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Towards Flink 2.0:  Unified Batch & Stream Processing - Aljoscha Krettek, Ver...Towards Flink 2.0:  Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
Towards Flink 2.0: Unified Batch & Stream Processing - Aljoscha Krettek, Ver...
 

Viewers also liked

Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
CoreStack
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jp
Miya Kohno
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANG
CoreStack
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
Tail-f Systems
 
Netconf et Yang
Netconf et YangNetconf et Yang
Netconf et Yang
Makhlouf Antitene
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
Tail-f Systems
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
Tail-f Systems
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylight
Gunjan Patel
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
Tail-f Systems
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
Tail-f Systems
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
Tail-f Systems
 
DEVNET-1152 OpenDaylight YANG Model Overview and Tools
DEVNET-1152	OpenDaylight YANG Model Overview and ToolsDEVNET-1152	OpenDaylight YANG Model Overview and Tools
DEVNET-1152 OpenDaylight YANG Model Overview and Tools
Cisco DevNet
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overview
Cisco DevNet
 
NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
Tail-f Systems
 
A 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANGA 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANG
Tail-f Systems
 

Viewers also liked (15)

Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jp
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANG
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
 
Netconf et Yang
Netconf et YangNetconf et Yang
Netconf et Yang
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
 
Yang in OpenDaylight
Yang in OpenDaylightYang in OpenDaylight
Yang in OpenDaylight
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
 
DEVNET-1152 OpenDaylight YANG Model Overview and Tools
DEVNET-1152	OpenDaylight YANG Model Overview and ToolsDEVNET-1152	OpenDaylight YANG Model Overview and Tools
DEVNET-1152 OpenDaylight YANG Model Overview and Tools
 
Introduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overviewIntroduction to YANG data models and their use in OpenDaylight: an overview
Introduction to YANG data models and their use in OpenDaylight: an overview
 
NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
 
A 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANGA 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANG
 

Similar to Mk network programmability-03_en

Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
Relay: The Next Leg, Eric Sorenson, Puppet
Relay: The Next Leg, Eric Sorenson, PuppetRelay: The Next Leg, Eric Sorenson, Puppet
Relay: The Next Leg, Eric Sorenson, Puppet
Puppet
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
Hojoong Kim
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
devopsdaysaustin
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
rhirschfeld
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
aspyker
 
2017 dagstuhl-nfv-rothenberg
2017 dagstuhl-nfv-rothenberg2017 dagstuhl-nfv-rothenberg
2017 dagstuhl-nfv-rothenberg
Christian Esteve Rothenberg
 
Data Parallel and Object Oriented Model
Data Parallel and Object Oriented ModelData Parallel and Object Oriented Model
Data Parallel and Object Oriented Model
Nikhil Sharma
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
Oracle Korea
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
Jupil Hwang
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
sparkfabrik
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
aspyker
 
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Indonesia Network Operators Group
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
All Things Open
 
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency ProgrammingConcurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
Sachintha Gunasena
 
On SDN Research Topics - Christian Esteve Rothenberg
On SDN Research Topics - Christian Esteve RothenbergOn SDN Research Topics - Christian Esteve Rothenberg
On SDN Research Topics - Christian Esteve Rothenberg
CPqD
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
abhijit2511
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
ICT PRISTINE
 
IPv4 to IPv6 network transformation
IPv4 to IPv6 network transformationIPv4 to IPv6 network transformation
IPv4 to IPv6 network transformation
Nikolay Milovanov
 

Similar to Mk network programmability-03_en (20)

Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Relay: The Next Leg, Eric Sorenson, Puppet
Relay: The Next Leg, Eric Sorenson, PuppetRelay: The Next Leg, Eric Sorenson, Puppet
Relay: The Next Leg, Eric Sorenson, Puppet
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
2017 dagstuhl-nfv-rothenberg
2017 dagstuhl-nfv-rothenberg2017 dagstuhl-nfv-rothenberg
2017 dagstuhl-nfv-rothenberg
 
Data Parallel and Object Oriented Model
Data Parallel and Object Oriented ModelData Parallel and Object Oriented Model
Data Parallel and Object Oriented Model
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency ProgrammingConcurrency Programming in Java - 01 - Introduction to Concurrency Programming
Concurrency Programming in Java - 01 - Introduction to Concurrency Programming
 
On SDN Research Topics - Christian Esteve Rothenberg
On SDN Research Topics - Christian Esteve RothenbergOn SDN Research Topics - Christian Esteve Rothenberg
On SDN Research Topics - Christian Esteve Rothenberg
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
 
IPv4 to IPv6 network transformation
IPv4 to IPv6 network transformationIPv4 to IPv6 network transformation
IPv4 to IPv6 network transformation
 

More from Miya Kohno

Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D event
Miya Kohno
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoF
Miya Kohno
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
Miya Kohno
 
Mk model driven-automation
Mk model driven-automationMk model driven-automation
Mk model driven-automation
Miya Kohno
 
Mk model driven-automation-en
Mk model driven-automation-enMk model driven-automation-en
Mk model driven-automation-en
Miya Kohno
 
Mk epn seminar-panel-for-public
Mk epn seminar-panel-for-publicMk epn seminar-panel-for-public
Mk epn seminar-panel-for-public
Miya Kohno
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
Miya Kohno
 

More from Miya Kohno (7)

Career - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D eventCareer - design, adaption and diversity - for EMC I&D event
Career - design, adaption and diversity - for EMC I&D event
 
Janog37 Pattern BoF
Janog37 Pattern BoFJanog37 Pattern BoF
Janog37 Pattern BoF
 
Mk state in-programming-01
Mk state in-programming-01Mk state in-programming-01
Mk state in-programming-01
 
Mk model driven-automation
Mk model driven-automationMk model driven-automation
Mk model driven-automation
 
Mk model driven-automation-en
Mk model driven-automation-enMk model driven-automation-en
Mk model driven-automation-en
 
Mk epn seminar-panel-for-public
Mk epn seminar-panel-for-publicMk epn seminar-panel-for-public
Mk epn seminar-panel-for-public
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
 

Recently uploaded

CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
drwaing
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
ssuser36d3051
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
bank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdfbank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdf
Divyam548318
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 

Recently uploaded (20)

CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
digital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdfdigital fundamental by Thomas L.floydl.pdf
digital fundamental by Thomas L.floydl.pdf
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
bank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdfbank management system in java and mysql report1.pdf
bank management system in java and mysql report1.pdf
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 

Mk network programmability-03_en

  • 1. 19  Feb.  2015   Miya  Kohno,  miya.kohno@gmail.com   “Declarative Programming” and a form of SDN Network Programmability Study Group Workshop #3 http://network-programmability.connpass.com/
  • 2. About me •  Miya  Kohno,  Principal  Engineer,  Cisco  Systems   •  Used  to  be  a  soDware  engineer   - Love  of  Programming  style  discussion •  ADer  that,  I  have  been  a  network  engineer   - Protocol     - Network  Architecture •  Official  Blog   - hPp://gblogs.cisco.com/jp/author/miyakohno/   •  TwiPer   @mkohno  
  • 3. Agenda •  Programming  Paradigm  Discussion  in  the  Networking   Discipline   •  A  Form  of  SDN Open  Daylight  -­‐-­‐  BGP-­‐LS/PCEP and  MD-­‐SAL  
  • 4. What is Network Programmability ?! •  Neutron I E T F •  NETCONF/YANG   •  I2RS   •  FORCES   •  + and  any  network  protocols  !     To  be  Programmed  /   Orchestrated  by  Network   Engineers To  Program  Network  Devices  (Virtual,   Physical)
  • 5. Programming Paradigm Trend in the Networking Discipline (hypothesis) •  Not  Impera^ve  but  Declara7ve     •  Not  Procedural  but  Model  driven     •  Not  Waterfall  but  Agile  
  • 6. What’s Declarative Programming ? •  A  program  that  describes  what  computa^on  should  be  performed  and   not  how  to  compute  it     •  Any  programming  language  that  lacks  side  effects  (or  more  specifically,   is  referen^ally  transparent)     •  A  language  with  a  clear  correspondence  to  mathema^cal  logic   http://en.wikipedia.org/wiki/Declarative_programming Any  style  of  programming  that  is  not  impera^ve  
  • 7. What’s Declarative Programming ? http://karari.tumblr.com/post/61067682037/clojure “Add  all  the  integers  from  1  to  10”   Impera^ve  code   var s = 0;! for(var n=1; n=10; n++)! {! s = s + n; ! }! console.log(s);! //55! Declara^ve  code   (- (range 1 11)! (reduce +)! (println)! )! //55! Flowchart  !   Model  !!   n  =  10  ?     •  Add   •  increment  n   1  ...  10   A set of the integers range : 1…10 sum
  • 8. What’s Declarative Programming ? Lack  of  side  effect  :      Referen^ally  Transparent,  Idempotent     Referen^al  Transparency     A  property  whereby  an  expression  can  be  replaced  by  its  value  without   affec^ng  the  program     e.g.  to  use  global  variables  makes  it  referen^ally  opaque   Idempotence     A  quality  of  an  ac^on  such  that  repe^^ons  of  the  ac^on  have  no  further  effect  on   outcome     e.g.  n++;  (incremen^ng)  is  not  idempotent à  These  concepts  are  important  for  networking  compu^ng  /  distributed   parallel  compu^ng,  where  environment  is  uncertain  and  such  things  like   retries  or  duplicates  could  more  likely  happen..  
  • 9. Idempotence group{'sysadmin':! !ensure=present! }! # First Puppet Run! notice: /Group[sysadmin]/ensure: created! notice: Finished catalog run in 0.08 seconds! ! # Second Puppet Run! notice: Finished catalog run in 0.03 seconds! An  example  from  Puppet   To  state  the  desired   status  =  “present”   The  second  run  is  not   executed,  because  it  is   already  “present”   We  could  do  this  using  Shell  Script(Impera^ve),  but  with  condi^onal  branches..       if[`getentgroupsysadmin|awk-F:'{print$1}'`==]! !then! ! !groupaddsysadmin! fi!
  • 10. What’s Declarative Programming ? [Pros]   •  Robustness  and  Scalability   -­‐  In  uncertain  and  complex  environments   -­‐  In  distributed  parallel  systems   •  Reusability,  Maintainability   [Cons]   •  Tend  to  be  Turing  incomplete   •  BePer  to  restrict  domain/scope   •  Not  good  at  controlling  details     To  agree  on     “what”   Model   Referen^al   Transparence   and   Idempotence  
  • 11. Turing completeness? •  Defini^on  of  Turing  completeness     -  A  computa^onal  system  that  can  compute  every  Turing-­‐computable   func^on  is  called  Turing  complete  (or  Turing  powerful).  Alterna^vely,   such  a  system  is  one  that  can  simulate  a  universal  Turing  machine.   hPp://en.wikipedia.org/wiki/Turing_completeness   -  Impera^ve  languages  are  all  Turing  complete.  (e.g.  C,  Java,  Perl,  PHP,   Python..)     •  Declara^ve  languages  tend  to  be  Turing  incomplete   -  It  does  not  mean  Declara^ve  languages  cannot  be  Turing  complete.     -  It’s  bePer  not  to  be  universally  powerful.  Instead,  by  limi^ng  the   scope  or  context,  the  power  of  declara^veness  would  be  op^mized.                (e.g.  SQL,  HTML,  JSON,  YANG..)  
  • 12. What’s Declarative Programming ? Impera^ve   Declara^ve   Programming   Language   •  Procedural   Programming   •  Func^onal  Programming   •  Domain  Specific   Language   Network  Control   •  Openflow                            OVS   •  DB   •  NETCONF/RESTCONF   •  Control  Plane  Protocols   Orchestra^on/ Automa^on   •  Workflow   •  Model-­‐driven   Configura^on   Management   •  Script   •  Puppet   •  CFEngine     •  OVSDB  
  • 13. Transport   Assurance   Orchestra^on   Control   Infrastructure   •  Physical   •  Virtual   virtual   physical   Service   Applica^on   Forwarding  Plane   (Distributed)  Control  Plane   (Centralized)  Control  Plane   Domain  Orchestra^on   Service  Orchestra^on   Service,  Applica^on   Hierarchy in Network Programmability Various  forms  of   Programmability  
  • 14. •  Addi^on  of  Model  Driven  SAL(Service  Adapta^on  Layer)   •  Various  Southbound  Protocol  (BGP-­‐LS,  PCEP..)   •  Supports  both  physical  and  virtual  devices   E.g. OpenDaylight Controller Architecture http://www.opendaylight.org/ Declara^ve   Impera^ve  
  • 15. •  NFVO  (NFV  Service  Orchestrator)     •  VNFM  (VNF  Manager)   •  VIM  (Virtual  Infrastructure  Manager)  –  Openstack,  etc.   E.g. ETSI NFV Orchestration Architecture Imperative BSS   EMS1   Virtualiza^on  Layer   VNFM   VIM   Virtual   Compu^ng   Virtual   Storage   Virtual   Networ k   NFVO   NFVI   NFV   Management   and   Orchestra^on   (Mano)   Compu^ng   Hardware   Storage   Hardware   Network   Hardware   VNF1   VNF2   VNF3   Tail-­‐f  NCS  EMS1   EMS1   OSS   SID   Workflow   Script   YANG  Model   VNF,  VNFM    Interface  Defini^ons   YANG  Model   Service  Defini^ons   Declarative
  • 16. Imperative vs Declarative – which fits where •  For  determinis^c  environment    à  Impera^ve   •  For  uncertain(*)  environment     à  Declara^ve     (*)  What  causes  uncertainty   •  Logical  and  physical  distance   •  Scale-­‐up,  Growth   •  Various  kind  of  components   •  Distributed  parallel  systems   •  Mul^-­‐agent  system  
  • 17. (Appendix) Programming Paradigm discussion in Computing discipline Object  Oriented   Procedural   Declara^ve,   Func^onal   Conflict  ?!   •  Object  Oriented  and  Func^onal  Programming  are  conflic^ng.   •  Due  to  the  difference  of  the  principles?     Impera^ve   Declara^ve  
  • 18. (Appendix) Imperative vs Declarative discussion in Cloud Management area hPp://docs.oasis-­‐open.org/tosca/TOSCA/v1.0/ cs01/TOSCA-­‐v1.0-­‐cs01.pdf   Proceedings  of  the  IEEE  Interna^onal  Conference  on  Cloud   Engineering  (IEEE  IC2E  2014)}  March  2014,  p87-­‐96,  DOI  10.1109/IC2E. 2014.56  
  • 19. (Appendix – yet another icing on the cake) Human and Machine Impera^ve  Paradigm     •  Human  who  writes  program  knows  everything     Declara^ve  Paradigm     •  Human  may  NOT  know  everything   -­‐  Machine  learning/Deep  Learning   -­‐  Agent  based  system     •  Network  centric  programming   -­‐  A  module  to  program  another  module  via  network    
  • 20. Agenda •  Programming  Paradigm  Discussion  in  the  Networking   Discipline   •  A  Form  of  SDN Open  Daylight  -­‐-­‐  BGP-­‐LS/PCEP and  MD-­‐SAL  
  • 21. “Network” from the viewpoint of Network Engineers ?! Network  Engineers’  view   Image  source  :    hPp://www.dreams^me.com/royalty-­‐free-­‐stock-­‐images-­‐3d-­‐white-­‐people-­‐system-­‐administrator-­‐image28585969,     hPp://www.sudarshansoDech.com/chnt3.htm   node   link   •  Only  if  we  announce  the   endpoint  informa^on  and   requirements,     •  Then  it  will  be  connected!   GW   •  IP  addr/subnet   •  vlan   •  port   External  Network   Internal  Network   Security   Server  Engineers’  view   •  Network  consists  of  nodes  and   links.   •  Topology  maPers,  Bandwidth   maPers..   •  Cost,  Delay,  JiPer  trade-­‐offs..  
  • 22. BGP−LS and PCEP – SDN for Network Engineering R5   R6   R7   R3   R4   R1   R2   SDN  Controller   Programming  CollecIon   NB  interface   PCEP  BGP-­‐LS,   etc   Conges^on!   TE  Path  calcula^on  and  setup   Collect  informa^on:   Topology,  Bandwidth,  Usage..   •  Path  to  sa^sfy  SLA   •  Disjoint  paths  based  on  QoS   requirements  
  • 23. •  TCP  MD5  Signature  Op^on  (rfc2385)  has  become  separated  from  BGPCEP  project   •  SDNi(SDN  interface)  depends  on  BGP  implementa^on   Implementation of BGP-LS, PCEP in Open Daylight http://www.opendaylight.org/
  • 24. Topology Learning by BGP-LS https://wiki.opendaylight.org/images/e/e3/ Os2014-md-sal-tutorial.pdf
  • 25. Path (Tunnel) setup by PCEP https://wiki.opendaylight.org/view/BGP_LS_PCEP:Programmer_Guide R5   R6   R7   R3   R4   R1   R2   SDN  Controller   Programming  CollecIon   NB  interface   PCEP  BGP-­‐LS,  etc   •  draD-­‐ie|-­‐pce-­‐stateful-­‐pce-­‐02  and  draD-­‐crabbe-­‐ini^ated-­‐00   •  draD-­‐ie|-­‐pce-­‐stateful-­‐pce-­‐07,  draD-­‐ie|-­‐pce-­‐pce-­‐ini^ated-­‐lsp-­‐00   •  draD-­‐sivabalan-­‐pce-­‐segment-­‐rou^ng-­‐02   Create   node,  name,   arguments,  endpoints-­‐obj,   ero,  lsp   Update   node,  name,   arguments,  opera^onal,   ero,  lsp   Remove   node,  name  
  • 26. (Appendix: Segment Routing)   Controller      DC   Cross  Domain   Orchestra^on   IPv4/IPv6   MPLS   Network   DC       Controller   Segment   RouIng   One  Collector   APIs   MPLS   Segment  RouIng   Control  Plane   LDP  and  RSVP  for   Label  distribu^on   IGP  extension  to   distribute  Segment   ID     Traffic   Engineering   RSVP  TE  signaling   Explicit  path  is   expressed  by   header  stack   ProtecIon   RSVP  TE  FRR   (IP  FRR/LFA  has   topology   restric^on)   Topology-­‐ Independent  FRR   •  Simple   •  No  extra  control  plane  (RSVP,  LDP)     •  No  RSVP  state  in  the  network   •  Applica^on  centric  
  • 27. Model Driven SAL http://www.opendaylight.org/ AD-­‐SAL   MD-­‐SAL   •  The  Model-­‐driven  approach  to  service  abstrac^on  presents  an  opportunity  to   unify  both  northbound  and  southbound  APIs  and  the  data  structures  used  in   various  services  and  components  of  an  SDN  Controller.  
  • 28. Model-Driven SAL 28     module  topology-­‐tunnel-­‐pcep-­‐programming  {                  yang-­‐version  1;                  namespace  urn:opendaylight:params:xml:ns:yang:topology:tunnel:pcep:programming;                  prefix  ttpp;            import  pcep-­‐types  {  prefix  pcep;  revision-­‐date  2013-­‐10-­‐05;  }          import  topology-­‐tunnel-­‐programming  {  prefix  ttp;  revision-­‐date  2013-­‐09-­‐30;  }          import  topology-­‐tunnel-­‐p2p  {  prefix  p2p;  revision-­‐date  2013-­‐08-­‐19;  }          import  topology-­‐tunnel-­‐pcep  {  prefix  ptp;  revision-­‐date  2013-­‐08-­‐20;  }                    organization  Cisco  Systems,  Inc.;                  contact  Robert  Varga  rovarga@cisco.com;                    description                                  This  module  contains  the  programming  extensions  for  tunnel                                  topologies.                                    Copyright  (c)2013  Cisco  Systems,  Inc.  All  rights  reserved.                                    This  program  and  the  accompanying  materials  are  made  available                                  under  the  terms  of  the  Eclipse  Public  License  v1.0  which                                  accompanies  this  distribution,  and  is  available  at                                  http://www.eclipse.org/legal/epl-­‐v10.html;            rpc  pcep-­‐create-­‐p2p-­‐tunnel  {                  input  {                          uses  ttp:create-­‐p2p-­‐tunnel-­‐input;                            uses  p2p:tunnel-­‐p2p-­‐path-­‐cfg-­‐attributes;                          uses  ptp:tunnel-­‐pcep-­‐link-­‐cfg-­‐attributes;                  }                  output  {                          uses  ttp:create-­‐p2p-­‐tunnel-­‐output;                  }          }          rpc  pcep-­‐destroy-­‐tunnel  {                  input  {                          uses  ttp:destroy-­‐tunnel-­‐input;                  }                  output  {                          uses  ttp:destroy-­‐tunnel-­‐output;                  }          }          rpc  pcep-­‐update-­‐tunnel  {                  input  {                          uses  ttp:base-­‐tunnel-­‐input;                            uses  p2p:tunnel-­‐p2p-­‐path-­‐cfg-­‐attributes;                          uses  ptp:tunnel-­‐pcep-­‐link-­‐cfg-­‐attributes;                  }                  output  {                          uses  ttp:base-­‐tunnel-­‐output;                  }          }! }! Yang   Tools   Plugin   Plugin   Model   topology-tunnel-pcep-programming.yang APIs  
  • 29. Model-Driven SAL •  Controller  SAL  to  communicate  with  other  controller  components,   applica^ons,  and  plugins.     Controller  SAL  
  • 30. Why Model? •  Model  is  a  representa^on  of  a  part  of  the  func^on,  structure   and/or  behavior  of  a  system  (*)   (*)  Architectural  Board    ORMSC,  “Model  Driven  Architecture”,  July  2001   •  Advantage  of  Model   •  Declara^ve     Agree  on  “what”,  not  “how”   •  Commonality    Abstract  diversity   •  Reusability,  Maintainability,  Portability     Conversion  from  model  to  model   •  Robustness  in  uncertain  environment  
  • 31. Agenda •  Programming  Paradigm  Discussion  in  the  Networking   Discipline   •  A  Form  of  SDN Open  Daylight  -­‐-­‐  BGP-­‐LS/PCEP and  MD-­‐SAL   Declara^ve  programming  and  Model-­‐drivenness  has   an  advantage  in  networking  compu^ng,  where  the   environment  is  more  uncertain.