Skip to content

Commit

Permalink
Merge pull request #52 from telefonicaid/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
oscargdd authored May 28, 2021
2 parents fd92364 + 8b6944b commit a33bc69
Show file tree
Hide file tree
Showing 275 changed files with 9,125 additions and 13,747 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ jdk:
script:
- mvn package -X -f ./pom.xml
- mvn install -X -f ./pom.xml
after_success:
- mvn coveralls:report
27 changes: 15 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
netphony-network-protocols v1.3.3
netphony-network-protocols v1.4.0-SNAPSHOT (remove in master)
=================================

Repository branch build status in Travis CI:
Expand All @@ -11,15 +11,20 @@ Latest Maven Central Release:

[![Maven Central](https://maven-badges.herokuapp.com/maven-central/es.tid.netphony/network-protocols/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/es.tid.netphony/network-protocols/)

Coverage status
| **Master** | **Develop** |
|:---:|:---:|
| [![Coverage Status](https://coveralls.io/repos/github/telefonicaid/netphony-network-protocols/badge.svg?branch=master)](https://coveralls.io/github/telefonicaid/netphony-network-protocols?branch=master) | [![Coverage Status](https://coveralls.io/repos/github/telefonicaid/netphony-network-protocols/badge.svg?branch=develop)](https://coveralls.io/github/telefonicaid/netphony-network-protocols?branch=develop) |

The netphony-network-protocols library is an implementation of four networking protocols:
* **PCEP protocol**: Path Computation Element Protocol (PCEP) (RFC 5440 https://tools.ietf.org/html/rfc5440 ).
* **PCEP protocol**: Path Computation Element Protocol (PCEP) [RFC 5440](https://tools.ietf.org/html/rfc5440).
* **BGP-LS protocol**: North-Bound Distribution of Link-State and Traffic Engineering Information using BGP https://tools.ietf.org/html/rfc7752. Support of BGP-LS Traffic Engineering (TE) Metric Extensions
* **RSVP-TE protocol**: Resource reservation protocol (RSVP) with Traffic Engineering extensions.
* **OSPF-TE protocol**: OSPF Version 2 protocol with Traffic Engineering extensions.
* **BGP-LS protocol**: North-Bound Distribution of Link-State and Traffic Engineering Information using BGP https://tools.ietf.org/html/rfc7752. Support of BGP-LS Traffic Engineering (TE) Metric Extensions https://tools.ietf.org/html/draft-previdi-idr-bgpls-te-metric-extensions-01

The protocol library can be easily integrated in any software that needs to interact with other software/devices using these protoocols. The library provides the encoding and decoding from java objects to bit-level. Note that, the state machine and set up of sessions is provided by other components, also available in github.

The PCEP implemnentation has been tested against other PCEP implementations (Telecom Italia Implementation, CTTC Implementation and CNIT Implementation) .
The PCEP implemnentation has been tested against other PCEP implementations. Commercial implementations (Cisco XTC). Research Implementations (Telecom Italia Implementation, CTTC Implementation and CNIT Implementation) .

The Netphony BGP-LS implementation is known to interoperate with Telecom Italia Implementation, CTTC Implementation and CNIT Implementation and Juniper MX routers. It is listed in the IETF BGP-LS implemenation report https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-impl-04

Expand All @@ -28,12 +33,8 @@ The library is maintained to be up-to-date to the latest version of the internet
Detailed CHANGELOG [click here](CHANGELOG)

## **Latest news**
- Hotfix to work with BPGPeer
- Ability to work with multiple NLRIs in the same BGP-LS MP Reach
- License is now Apache 2.0
- BPG-LS Tested with Juniper MX routers
- Various bugfixes in BGP-LS
- 5GEX extensions to carry IT information in BGP-LS (propietary)
- Back to life after some time dormant :-)
- PCEP Message numbers, Object classes and Object types from IANA https://www.iana.org/assignments/pcep/pcep.xhtml by 30th November

## Compilation and use

Expand All @@ -50,7 +51,7 @@ To build the .jar file and run the tests, clone the repository, go to the main d
<dependency>
<groupId>es.tid.netphony</groupId>
<artifactId>network-protocols</artifactId>
<version>1.3.2</version>
<version>1.4.0-SNAPSHOT</version>
</dependency>
```
Authors keep also a copy of the artifact in maven central to facilitate the deployment. (*) In process
Expand Down Expand Up @@ -102,12 +103,14 @@ The detail of the messages, objects and TLVs can be found in [click here](doc/PC
* RFC 5521: Path-key not supported
* RFC 5886: Full compliance
* RFC 6006: Only P2MP END-POINTS Object for IPv4
* RFC 8231: Full compliance
* RFC 8281: Full compliance
* draft-ietf-pce-gmpls-pcep-extensions-10 (partial)
* draft-ietf-pce-inter-layer-ext-05 (partial)
* draft-ietf-pce-hierarchy-extensions-02
* draft-ietf-pce-stateful-pce-05
* draft-ietf-pce-pcep-stateful-pce-gmpls-00
* draft-ietf-pce-pce-initiated-lsp-00:


## RSVP-TE Support

Expand Down
207 changes: 174 additions & 33 deletions doc/MessageSyntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,54 +16,195 @@ Open Message::=
KeepAlive Message
-----------------
```
Keepalive Message::=
<Common Header>
Keepalive Message::=<Common Header>
```

PCReq Message
Path Computation Request (PCReq) Message
-------------
```PCReq Message::= <Common Header>[<svec-tuple-list>]<request-list> ```

```
PCReq Message::=
<Common Header>[<svec-tuple-list>]<request-list>
<svec-tuple-list>::=
<svec-tuple>[<svec-tuple-list>]
<svec-tuple>::=
<SVEC>[<OF>][<metric-list>][<GC>][<XRO>]
<metric-list>::=
< METRIC>[<metric-list>]
<request-list>::=
<request>[<request-list>]
<request>::=
<RP><segment-computation>|<path-key-expansion>
<segment-computation>::=
<END-POINTS>[<CLASSTYPE>][<LSPA>][<BANDWIDTH>][<metric-list>][<OF>][<rro-bw-pair>][<IRO>][<LOAD-BALANCING>][<XRO>]
<rro-bw-pair>::=
<RRO>[<BANDWIDTH>]
<path-key-expansion>::=
<PATH-KEY>

```
PCReq Message::=<Common Header>[<svec-tuple-list>]<request-list>
<svec-tuple-list>::=<svec-tuple>[<svec-tuple-list>]
<svec-tuple>::= <SVEC>[<OF>][<metric-list>][<GC>][<XRO>]
<metric-list>::=<METRIC>[<metric-list>]
<request-list>::=<request>[<request-list>]
<request>::=<RP><segment-computation>|<path-key-expansion>
<segment-computation>::=<END-POINTS>[<CLASSTYPE>][<LSPA>][<BANDWIDTH>][<metric-list>][<OF>][<rro-bw-pair>][<IRO>][<LOAD-BALANCING>][<XRO>]
<rro-bw-pair>::=<RRO>[<BANDWIDTH>]
<path-key-expansion>::=<PATH-KEY>
```
PCRep Message

Path Computation Reply (PCRep) Message
-------------

PCNtf Message
```
<CRep Message::=<Common Header>
<response-list>
<response-list>::=<response>[<response-list>]
<response>::=<RP>[<NO-PATH>][<attribute-list>][<path-list>]
<attribute-list>::=[<OF>][<LSPA>][<BANDWIDTH>][<metric-list>][<IRO>][<XRO>]
<metric-list>::=<METRIC>[<metric-list>]
<path-list>::=<path>[<path-list>]
<path>::=<ERO>
<attribute-list>
```
Notification (PCNtf) Message
-------------

PCErr Message
```
PCNtf Message::=<Common Header> <notify-list>
<notify-list>::=<notify>[<notify-list>]
<notify>::=[<request-id-list>]<notification-list>
<request-id-list>::=<RP>[<request-id-list>]
<notification-list>::=<NOTIFICATION>[<notification-list>]
```

Error (PCErr) Message
-------------

```
PCErr Message::=<Common Header><err-open>|<error>[<error-list>]
<err-open>::=<error-obj-list>[<OPEN>]
<error-obj-list>::=<PCEP-ERROR>[<error-obj-list>]
<error>::=[<request-id-list>]<error-obj-list>
<request-id-list>::=<RP>[<request-id-list>]
<error-list>::=<error>[<error-list>]
```

Close Message
-------------

* PCMonReq Message
* PCMonRep Message
* PCRpt Message
* PCUpd Message
* PCInitiate Message
```
Close Message::=<Common Header><CLOSE>
```

Path Computation Monitoring Request (PCMonReq) Message
-------------

```
PCMonReq Message::=<Common Header><MONITORING><PCC-ID-REQ>[<pce-list>][<svec-list>][<request-list>]
<pce-list>::=
<PCE-ID>
[<pce-list>]<svec-list>::=
<SVEC>
[<svec-list>]<request-list>::=
<request>
[<request-list>]<request>::=
<RP>
<segment-computation>|<path-key-expansion>
<segment-computation>::=
[<vendor-info-list>]
<END-POINTS>
[<LSP>]
[<CLASSTYPE>]
[<LSPA>]
[<BANDWIDTH>]
[<metric-list>]
[<OF>]
[<rro-bw-pair>]
[<IRO>]
[<LOAD-BALANCING>]
[<XRO>]
<vendor-info-list>::=
<VENDOR-INFORMATION>
[<vendor-info-list>]<metric-list>::=
<METRIC>
[<metric-list>]<rro-bw-pair>::=
<RRO>
[<BANDWIDTH>]
<path-key-expansion>::=
<PATH-KEY>
```

Path Computation Monitoring Reply (PCMonRep) Message
-------------

```
PCMonRep Message::=<Common Header><MONITORING><PCC-ID-REQ>[<RP>][<metric-pce-list>]
<metric-pce-list>::=<metric-pce>[<metric-pce-list>]
<metric-pce>::=<PCE-ID>[<PROC-TIME>][<OVERLOAD>]
```

Report (PCRpt) Message
-------------

```
PCRpt Message::=<Common Header><state-report-list>
<state-report-list>::=<state-report>[<state-report-list>]
<state-report>::=<LSP><path>
<path>::=<ERO><attribute-list>
<attribute-list>::=[<OF>][<LSPA>][<BANDWIDTH>][<metric-list>][<IRO>][<XRO>]
<metric-list>::=<METRIC>[<metric-list>]
```

Update (PCUpd) Message
-------------
```
PCUpd Message::=<Common Header><update-request-list>
<update-request-list>::=<update-request>[<update-request-list>]
<update-request>::=<LSP><path>
<path>::=<ERO><attribute-list>
<attribute-list>::=[<OF>][<LSPA>][<BANDWIDTH>][<metric-list>][<IRO>][<XRO>]
<metric-list>::=<METRIC>[<metric-list>]
```
LSP Initiate (PCInitiate) Request Message
-------------
```
PCInitiate Message::=<Common Header><PCE-initiated-lsp-list>
<PCE-initiated-lsp-list>::=<PCE-initiated-lsp-instantiation>|<PCE-initiated-lsp-deletion>[<PCE-initiated-lsp-list>]
<PCE-initiated-lsp-instantiation>::=<SRP><END-POINTS><ERO>[<attribute-list>]
<attribute-list>::=[<OF>][<LSPA>][<BANDWIDTH>][<metric-list>][<IRO>][<XRO>]
<metric-list>::=<METRIC>[<metric-list>]
<PCE-initiated-lsp-deletion>::=<SRP>
```
StartTLS Message
-------------
```
<StartTLS Message>::= <Common Header>
```

### Experimental propierary messages
### Experimental proprietary messages

* PCEPTELinkSuggestion
* PCEPTELinkConfirmation
Expand Down
Loading

0 comments on commit a33bc69

Please sign in to comment.