Skip to content

Native Golang implementation of the PCEP protocol

Notifications You must be signed in to change notification settings

mayuresh82/go-pce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PCEP ( Path Computation Element Protocol) is an IETF standard for communicating with mpls LSRs/LERs in order to signal LSP paths and attributes, including the setup and teardown of LSPs. It is almost a ten year old standard that has gone through several iterations and drafts. Most major vendors support PCEP for external LSP signalling.

The implementation here is meant to be a basic active-stateful implementation (active: can actively modify LSP attrs; stateful: maintains LSP state in memory) and allows for lsp attribute changes and external lsp path setup.
As part of initial protocolturnup, each router sends out a full LSP dump to the pcep server and then subsequent changes every time an LSP attribute changes (bandwidth, metric, rro etc).

Note that the actual path-compuation is performed by an external entity, this system provides a framework and the protocol to signal those paths out to routers.

There are two major components:

== pcep ==
This is the actual protocol implementation and includes the Defnition , parsing and serialization of the different types of objects and messages defined in the PCEP protocol (RFC 5440, D-Stateful, D-PCE Initiated). Also includes the state machine to talk to clients (routers) via pcep and structs to hold the network LSP database.

== server ==
A standard GRPC server that exposes methods to read data obtained via pcep. It also includes methods that allows for changing LSP attributes (of externally controlled LSPs) as well as adding and removing new externally controlled LSPs.

About

Native Golang implementation of the PCEP protocol

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages