Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
e2045ae
feat(gobgp): add LsSRv6SIDNLRI for BGP-LS Service Segment
k1yoto Apr 8, 2025
e0714b5
feat(ted): add LsSRv6SIDNLRI for BGP-LS Service Segment
k1yoto Apr 8, 2025
d60460d
refactor(gobgp): add reflection for draft-ietf-idr-bgp-ls-sr-service-…
watal Apr 10, 2025
9de77b7
refactor(gobgp): remove redundant argument and struct
watal Apr 10, 2025
63aed16
refactor(gobgp): simplify address format and comment
watal Apr 11, 2025
04766bc
refactor(gobgp): improve error wrapping and context
watal Apr 11, 2025
cefd153
refactor(gobgp): simplify address format and comment
watal Apr 11, 2025
e9a556f
refactor(gobgp): improve error wrapping and context
watal Apr 11, 2025
19a5d79
refactor(gobgp) use context.WithCancel to prepare for future cancella…
watal Apr 11, 2025
dbb31f6
refactor(gobgp): ISIS Area ID formatting into helper function
watal Apr 11, 2025
2618ddc
refactor(pcep): rename MessageTypes and add stringer
watal Apr 7, 2025
eda9422
refactor(pcep): rename PCC types and vendor-specific TLV constants to…
watal Apr 9, 2025
8f6aeb7
refactor(pcep): rename object classes/types and NAI types, improve er…
watal Apr 9, 2025
f0c82cb
refactor(pcep): add CloseReason type and improve error messages
watal Apr 9, 2025
2dd8d3f
refactor(object): reorder functions for VendorInformationObject
watal Apr 9, 2025
52709c1
refactor(pcep): add TLVtype and stringer, rename Lsp to LSP to follow…
watal Apr 14, 2025
67a79cf
refactor(polad): rename constant
watal Apr 14, 2025
5c8003d
refactor: rename acronym variables to follow Go naming conventions
watal Apr 15, 2025
ace97c9
refactor(grpc): align with Protocol Buffers Style Guide and rename `-…
watal Apr 15, 2025
e887757
refactor(yaml): use snake_case for YAML field names and improve consi…
watal Apr 15, 2025
ee4aa47
refactor(markdown): Apply markdownlint
watal Apr 15, 2025
92bab44
chore(ci): update CI workflow to improve buf and markdown lint checks
watal Apr 15, 2025
566d3f6
chore(ci): apply lint checks to both main and develop branches
watal Apr 15, 2025
c0868e5
chore(ci): add buf.yml
watal Apr 15, 2025
16b1f56
refactor: fix golint warnings (excluding comment-related ones)
watal Apr 15, 2025
5edea8e
refactor(grpc): rename `--explicit-path` option
watal Apr 15, 2025
aae260e
chore: add new tests for pcep_util and capability
watal Mar 8, 2023
b5f8959
refactor(pcep): improve bit manipulation and add tests for StatefulPc…
watal Apr 15, 2025
eac5241
refactor(pcep): improve decoding, serialization, and add tests for Sy…
watal Apr 4, 2025
f2afda3
refactor(pcep): improve decoding, serialization, and add tests for IP…
watal Apr 4, 2025
390576d
refactor(pcep): rename variables for clarity
watal Apr 4, 2025
138e116
refactor(pcep): improve decoding and add tests for LSPDBVersion
watal Apr 4, 2025
fa83e3b
refactor(pcep): improve decoding and add tests for SRPCECapability
watal Apr 7, 2025
a77d78d
fix(json): replace strings.Fields with explicit loop in Psts.MarshalJ…
watal Apr 7, 2025
1864625
refactor(pcep): add length check, index const, and tests for PathSetu…
watal Apr 15, 2025
9a72a67
refactor(pcep): fix TLV constant names and improve TLV parsing with n…
watal Apr 18, 2025
3a33bd8
refactor: improve naming consistency and simplify types
watal Apr 18, 2025
6367763
refactor(pcep): make Uint16ToByteSlice accept TLVType via ~uint16 con…
watal Apr 18, 2025
4d5b83d
refactor(pcep): simplify serialization by making SetBit conditional
watal Apr 18, 2025
07effd9
refactor(pcep): use []byte and byte consistently
watal Apr 18, 2025
46d2d85
refactor(pcep): make Uint16ToByteSlice accept TLVType via ~uint16 co…
watal Apr 18, 2025
6d9f8bf
refactor(pcep): use []byte and byte consistently
watal Apr 18, 2025
54d8abf
refactor(SymbolicPathName): add utf8 validation
watal Apr 18, 2025
5370cea
refactor(pcep): improve serialization and decoding using pcep_utils
watal Apr 18, 2025
c1a814c
feat(LsPrefixNLRI): merge LsPrefixV4NLRI and LsPrefixV6NLRI processing
k1yoto May 17, 2025
3f52fed
feat(grpc): support LsSRv6SIDNLRI and LsPrefixV6NLRI
k1yoto May 17, 2025
5e4d5e8
fix(interface): support IPv6 for LsNodeNLRI and LsLinkNLRI
k1yoto May 17, 2025
c15a51a
chore(LsSRv6SIDNLRI): add comment-outs and tools
k1yoto May 17, 2025
19e580a
fix(gobgp): fix to be able to display TED in CLI tool
k1yoto May 17, 2025
040a057
chore(README): fix link text to be descriptive
k1yoto May 27, 2025
542c426
chore(grpc): change protoc version from v3.12.4 to v5.29.3
k1yoto May 27, 2025
3248ef5
feat(api): add SRv6 SIDStructure and EndpointBehavior protobuf defini…
k1yoto Jun 22, 2025
4249212
feat(srv6): add SRv6 End.X SID and SID Structure support
k1yoto Jun 22, 2025
5708950
feat(srv6): enhance SRv6 Segment creation and node support
k1yoto Jun 22, 2025
79bf33e
feat(cspf): implement dynamic path computation from TED
k1yoto Jun 22, 2025
44bc485
chore(srPolicy): improve input validation and error handling
k1yoto Jun 22, 2025
3079f12
refactor(grpc): align with Protocol Buffers Style Guide and rename `-…
watal Apr 15, 2025
5e4c6b8
refactor(pcep): improve bit manipulation and add tests for StatefulPc…
watal Apr 17, 2025
b60cf6b
refactor(SymbolicPathName): add utf8 validation and tests
watal Apr 18, 2025
cfff108
refactor(pcep): improve serialization and decoding using pcep_utils
watal Apr 18, 2025
d4f8a1c
feat(pcep): add TLVs for SR Policy Candidate Path ID and Preference
watal Apr 21, 2025
fd621aa
refactor(pcep): use named constants for IPv4/IPv6 LSP Identifiers TLV…
watal Apr 21, 2025
04e606e
test(pcep): add tests for TLVType.String() and TLV map initialization…
watal Apr 21, 2025
b961b03
feat(pcep): add Color capability bit to StatefulPCECapability and upd…
watal Apr 21, 2025
35f0480
test(pcep): add tests for MarshalLogObject and CapStrings
watal Apr 21, 2025
2063566
refactor(SRPCECapability): update constants and improve decoding logic
watal Apr 21, 2025
522b344
test(Pst): add tests for PathSetupType
watal Apr 21, 2025
9ae6dc1
refactor(SymbolicPathName): add utf8 validation and tests
watal Apr 20, 2025
8a4e9b7
test(Pst): add tests for ExtendedAssociationID
watal Apr 21, 2025
95407fd
refactor(pcep): use []byte and byte consistently
watal Apr 21, 2025
906a1f5
test(pcep): add tests for TLVType.String() and TLV map initialization…
watal Apr 21, 2025
f458c87
refactor(tests): improve consistency in StatefulPCECapability test na…
watal Apr 21, 2025
3d8e411
test(tlv): improve tests with edge cases and logging
watal Apr 21, 2025
c7b0e09
chore: Bump go from 1.24.2 to 1.24.5
watal Jul 23, 2025
33a9080
refactor(tests): improve consistency in StatefulPCECapability test na…
watal Jul 24, 2025
89c51cf
refactor(pcep): update unit tests
watal Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 37 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,55 @@
name: golangci-lint
name: Lint

on:
push:
branches: [ 'main' ]
branches:
- main
- develop
pull_request:
branches: [ 'main' ]
branches:
- main
- develop
types:
- opened
- reopened
- synchronize
- ready_for_review

jobs:
golangci:
name: lint
lint:
name: Lint
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false)
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: latest
args: --config=.golangci.yml

- name: Install buf CLI
uses: bufbuild/buf-setup-action@v1
with:
version: latest

- name: Run buf lint
run: buf lint

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: latest

- name: Install markdownlint-cli
run: npm install -g markdownlint-cli

- name: Run markdownlint
run: markdownlint '**/*.md' --ignore node_modules
5 changes: 5 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"MD013": false,
"MD033": false,
"MD041": false
}
6 changes: 3 additions & 3 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,13 @@ the community.

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.
16 changes: 13 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Contributing

Thank you for considering contributing to Pola PCE!
Below are the guidelines for contributing.

## Creating Pull Requests
All updates, including those contributed by project members, must be reviewed via Pull Request.

## Creating issues
If you have a bug report, feature request, or other question, please create an issue. However, please refer to [Security Policy](https://github.com/nttcom/pola/blob/main/SECURITY.md) for vulnerabilities.
All updates, including those contributed by project members,
must be reviewed via pull request.

## Creating Issues

If you have a bug report, feature request, or other question, please create an issue.
However, please refer to the [security policy](https://github.com/nttcom/pola/blob/main/security.md)
for vulnerabilities.
33 changes: 33 additions & 0 deletions CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -2573,6 +2573,39 @@ THE SOFTWARE.

================================================================

golang.org/x/exp
https://golang.org/x/exp
----------------------------------------------------------------
Copyright 2009 The Go Authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

================================================================

golang.org/x/net
https://golang.org/x/net
----------------------------------------------------------------
Expand Down
27 changes: 21 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,61 @@
</p>

# Pola PCE

[![Linter](https://github.com/nttcom/pola/actions/workflows/ci.yml/badge.svg)](https://github.com/nttcom/pola/actions)
[![Releaser](https://github.com/nttcom/pola/actions/workflows/release.yml/badge.svg)](https://github.com/nttcom/pola/actions)
[![Go Report Card](https://goreportcard.com/badge/nttcom/pola)](https://goreportcard.com/report/github.com/nttcom/pola)
[![Go Report Card](https://goreportcard.com/badge/nttcom/pola)](https://goreportcard.com/report/github.com/nttcom/pola)
[![Go Reference](https://pkg.go.dev/badge/github.com/nttcom/pola.svg)](https://pkg.go.dev/github.com/nttcom/pola)
[![Go version](https://img.shields.io/github/go-mod/go-version/nttcom/pola)](https://go.dev/)
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)

Pola PCE is an implementation of the Path Computation Element (PCE) and a PCEP Library in Go.
Pola PCE is an implementation of the Path Computation Element (PCE)
and a PCEP Library in Go.

## Features

* Support for SRv6(full-SID/uSID) and SR-MPLS
* Implementation of active stateful PCE functionality (PCInitiate, PCUpdate, etc.)
* Dynamic and explicit SR policy definition using YAML
* Dynamic path: Utilizes CSPF with GoBGP BGP-LS TED
* Explicit path: Allows users to define and provision any Segment List

## Interoperability

### SR-MPLS

* IOS-XR
* Junos
* FRRouting

### SRv6 (full-SID)

* Junos

### SRv6 (uSID)

* IOS-XR
* Junos
* VRP

## Installation & Use

* [Getting Started](docs/sources/getting-started.md)
* Examples (powered by [Containerlab](https://containerlab.dev/)/[Tinet](https://github.com/tinynetwork/tinet))
* [SR-MPLS Example](examples/tinet/sr-mpls_te_l3vpn)
* [SRv6 Example](examples/containerlab/srv6_te_l3vpn)

## Contributing
If you are interested in contributing to the project, please refer to the [CONTRIBUTING](https://github.com/nttcom/pola/blob/main/CONTRIBUTING.md) guidelines.
Feel free to fork the repository and create a Pull Request. Your contributions are highly appreciated.

If you are interested in contributing to the project, please refer to the
[CONTRIBUTING](https://github.com/nttcom/pola/blob/main/CONTRIBUTING.md)
guidelines.
Feel free to fork the repository and create a Pull Request.
Your contributions are highly appreciated.

## Licensing
Pola PCE is licensed under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).
For the full license text, see [LICENSE](https://github.com/nttcom/pola/blob/master/LICENSE).

Pola PCE is licensed under the
[MIT license](https://en.wikipedia.org/wiki/MIT_License).
For the full license text, see
[LICENSE](https://github.com/nttcom/pola/blob/master/LICENSE).
7 changes: 4 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@

**Please do not report security vulnerabilities in public issues on GitHub.**

Instead, please report by email to the Pola PCE maintainer ([watal](https://github.com/watal)).
Include "Vulnerability" in the subject line of the email.
Instead, please report by email to the Pola PCE maintainer ([watal](https://github.com/watal)).
Include "Vulnerability" in the subject line of the email.
We will action the vulnerability within 72 hours of receiving the vulnerability report.

If you have suggestions for improving this policy, please submit a PR or Issue for discussion.
If you have suggestions for improving this policy,
please submit a PR or Issue for discussion.
Loading