SDN Controller Programming Guide

iii
Contents
1 Introduction ··································································································································································· 1
Overview ··········································································································································································· 1
Basic Architecture ····························································································································································· 3
Internal Applications vs. External Applications ············································································································· 5
2 Setting Environment······················································································································································ 7
Test Environment ······························································································································································· 7
Installing HP VAN SDN Controller ························································································································· 7
Authentication Configuration ·································································································································· 7
Development Environment················································································································································ 7
Pre-requisites ····························································································································································· 7
HP VAN SDN Controller SDK ································································································································ 8
3 Developing Applications ··········································································································································· 10
Introduction ······································································································································································ 10
Web Layer ······························································································································································ 11
Business Logic Layer ·············································································································································· 11
Persistence Layer ···················································································································································· 11
Authentication ································································································································································· 12
REST API··········································································································································································· 14
Rsdoc ······································································································································································· 15
Rsdoc Extension ······················································································································································ 16
Rsdoc Live Reference ············································································································································· 16
Audit Logging ·································································································································································· 18
Alert Logging ··································································································································································· 19
Configuration ·································································································································································· 20
OpenFlow ········································································································································································ 22
Message Library ····················································································································································· 23
Core Controller······················································································································································· 29
Metrics Framework ························································································································································· 39
External View·························································································································································· 39
GUI ··················································································································································································· 52
SKI Framework - Overview ··································································································································· 52
SKI Framework - Navigation Tree ························································································································ 53
SKI Framework - Hash Navigation ······················································································································· 54
SKI Framework - View Life-Cycle ·························································································································· 57
SKI Framework - Live Reference Application ······································································································· 57
UI Extension ···························································································································································· 58
Distributed HA Primitives ················································································································································ 63
Introduction ····························································································································································· 63
Controller Teaming ················································································································································ 64
HA Service ······························································································································································ 67
High Availability ····························································································································································· 75
Role orchestration ·················································································································································· 75
Persistence ······································································································································································· 79
Distributed Persistence Overview ························································································································· 79