These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
| Commit: | c29c820 | |
|---|---|---|
| Author: | Pau Nadeu | |
| Committer: | Pau Nadeu | |
api, apiutil: surface RFC 9351 Flex-Algorithm Definition + multi-SID Prefix-SID The previous commit added the packet-layer decode for RFC 9351 (TLV 1039 FAD, sub-TLVs 1040..1046, top-level TLV 1044 FAPM) and the RFC 9085 Section 2.1.1 multi-algorithm Prefix-SID aggregation. This commit propagates those structured fields through the gRPC API surface so external consumers (gobgp CLI, third-party clients) can read them without re-parsing the wire bytes. proto/api/attribute.proto - LsAttributeNode: new repeated LsAttributeFlexAlgoDef flex_algo_defs (field 10). One entry per FAD TLV observed. - LsAttributeFlexAlgoDef: algorithm, metric_type, metric_type_known, calc_type, priority, plus repeated affinity bitmaps, definition flags bytes and exclude_srlg. - LsAttributePrefix: new repeated LsAttributePrefixSID sr_prefix_sids (field 4) carrying Algorithm + Flags + SID per Prefix-SID TLV, and new repeated LsAttributeFADPrefixMetric fad_prefix_metrics (field 5) for the FAPM Prefix Attribute TLVs. - LsAttributePrefixSID: algorithm, flags, sid. - LsAttributeFADPrefixMetric: algorithm, flags, metric. The singular LsAttributePrefix.sr_prefix_sid stays for backward compatibility with consumers that look up the Algorithm-0 SID through the old singular field; the projection populates it from the first Algorithm-0 entry observed. api/attribute.pb.go is regenerated against the new schema. The protoc version stamp is normalised to `(unknown)` to match the BSR plugin output the upstream `buf generate` command emits in CI, so the file stays identical between local-protoc runs and CI runs. pkg/apiutil/attribute.go - NewLsAttributeFromNative: append every FAD on the Node side, every Prefix-SID and every FAPM on the Prefix side. Slices are copied so the api object does not alias the packet-layer buffers. - UnmarshalLsAttribute: rehydrate the same three slices on the bgp.LsAttribute side. Multi-SID and FAPM survive even when the Prefix NLRI carries no IGP-Flags TLV. pkg/apiutil/attribute_test.go - TestFullCycleFlexAlgoDefAndFAPM: hand-builds a PathAttributeLs with FAD + two Prefix-SID entries (algo 0 and algo 128) + one FAPM, runs it through NewLsAttributeFromNative, a proto round trip, and UnmarshalLsAttribute. Verifies every field survives in both directions and that the legacy singular sr_prefix_sid still matches the Algorithm-0 SID. All target test suites stay green under -race on Go 1.25: - pkg/packet/bgp: ok (no changes since the prior commit). - pkg/apiutil: ok (incl. TestFullCycleFlexAlgoDefAndFAPM). The gobgp CLI surfacing (print-side and -j JSON output) is the follow-up commit in this series.
The documentation is generated from this commit.
| Commit: | 877913e | |
|---|---|---|
| Author: | Pau Nadeu | |
| Committer: | Pau Nadeu | |
api, apiutil: surface the BGP Extended Message capability Adds the api / proto / apiutil glue that lets ListPeer surface a negotiated RFC 8654 Extended Message capability over gRPC instead of falling back to CapUnknown. Mirrors the way the other empty-TLV capabilities (Route Refresh, Carrying Label Info) are exposed; no config knob is introduced. - proto/api/capability.proto adds an empty ExtendedMessageCapability message and wires it into the Capability.cap oneof as field 14, mirroring RouteRefreshCapability. - api/capability.pb.go is the regenerated output from `buf generate`. The protoc version stamp is `(unknown)` because the BSR plugins do not include a protoc binary version in their stamp; the upstream CI `protobuf-check` job stays green. - pkg/apiutil/capability.go gains a NewExtendedMessageCapability helper, a MarshalCapability switch case, and an unmarshalCapability counterpart so a remote capability list containing *bgp.CapExtendedMessage marshals through the gRPC surface without falling back to CapUnknown. The advertisement and length-gating logic, plus a runtime test that covers the on-wire negotiation, ship in the next commit.
| Commit: | d43ff16 | |
|---|---|---|
| Author: | Ivan-Pokhabov | |
| Committer: | FUJITA Tomonori | |
feat: add as-path-options params for peer-group api and config parser
| Commit: | 010d6a5 | |
|---|---|---|
| Author: | Ivan-Pokhabov | |
| Committer: | FUJITA Tomonori | |
feat(bfd): align BFD API
| Commit: | e13c9f7 | |
|---|---|---|
| Author: | Klaus Schneider | |
| Committer: | FUJITA Tomonori | |
bgp-ls: add delay-metric TLVs across packet, API, and CLI
| Commit: | 988fd14 | |
|---|---|---|
| Author: | Andrew Redmon | |
| Committer: | FUJITA Tomonori | |
Adding support for setting IP_TOS/IPV6_TCLASS as a socket option
| Commit: | e38ad7c | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: remove ApplyPolicy from Global The ApplyPolicy field in the API Global structure was added as an equivalent to config.Global.ApplyPolicy used in file-based configuration. However, unlike file-based configuration, API-based configuration is designed to be set through multiple policy-related APIs such as AddPolicy, making ApplyPolicy inappropriate and unused in the API context. Therefore, it should be removed. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | b0fe2a0 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
config: remove unused InPolicy config The InPolicy feature was removed long ago. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 1c34761 | |
|---|---|---|
| Author: | k1yoto | |
| Committer: | k1yoto | |
feat(api): add protobuf definitions of TLVs related to SRv6 in RFC9514
| Commit: | 4b75d99 | |
|---|---|---|
| Author: | Linmao Cong | |
feat: Add BGP peer disconnect reason reporting This commit adds comprehensive BGP peer disconnect reason reporting to improve monitoring and troubleshooting capabilities. Changes: - Add DisconnectReason enum to PeerState with 14 different disconnect reasons - Add disconnect_reason and disconnect_message fields to PeerState - Add fsmBadPeerAS constant and detection logic in FSM - Add convertFSMStateReasonToAPI function to map FSM reasons to API enums - Update WatchEvent to include disconnect reason and message in peer events - Update apiutil.PeerState to include new disconnect reason fields The new disconnect reasons include: - ADMIN_DOWN, HOLD_TIMER_EXPIRED, NOTIFICATION_SENT/RECEIVED - READ_FAILED, WRITE_FAILED, IDLE_TIMER_EXPIRED, RESTART_TIMER_EXPIRED - GRACEFUL_RESTART, INVALID_MSG, HARD_RESET, DECONFIGURED, BAD_PEER_AS This enhancement provides better visibility into why BGP sessions disconnect, enabling more effective monitoring and troubleshooting of BGP peer relationships.
| Commit: | 64ffc00 | |
|---|---|---|
| Author: | Sergey Klyaus | |
| Committer: | FUJITA Tomonori | |
expose LlgrRunning flag in API
| Commit: | 9dec5d5 | |
|---|---|---|
| Author: | Sergey Klyaus | |
| Committer: | FUJITA Tomonori | |
rework LlgrRunning flag to be per-family
| Commit: | 8ccb05d | |
|---|---|---|
| Author: | Ivan-Pokhabov | |
| Committer: | FUJITA Tomonori | |
Add support for local-pref-eq and med-eq openconfig bgp conditions
| Commit: | e633de9 | |
|---|---|---|
| Author: | Rastislav Szabo | |
| Committer: | Rastislav Szabo | |
feat: Allow graceful restart in StopBgpRequest Before this change, it was not possible to stop BgpServer while allowing Graceful Restart to kick in on the remote peers, as we send a NOTIFICATION mesage which terminates GR to each peer upon Stop(). This change allows to skip sending the NOTIFICATION messages to GR-enabled peers if the allow_graceful_restart flag is set to true. Keeps the existing behavior if the flag is not set. Signed-off-by: Rastislav Szabo <rastislav.szabo@isovalent.com>
| Commit: | bcd2d8b | |
|---|---|---|
| Author: | Yury Konovalov | |
| Committer: | Yury Konovalov | |
ADD: E-Tree and Multicast Flags EVPN extended communities support This patch enable processing of evpn routes with two new extcomm sub-types: - 0x05 RFC8317 E-Tree Extended Community - 0x09 RFC9251 Multicast Flags Extended Community
| Commit: | 3959594 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix SessionState enum prefix Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 4bd4524 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix ValidationState enum prefix Fix lint wanrings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 27e688a | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Add ValidationState enum Used for Validation and Conditions messages. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 50d6ac4 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix PeerType Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 2d2f0b0 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix Type Enum in MatchSet Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | cc1ac87 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix RemovePrivate Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 1f48585 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix AdminState Enum in PeerState Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 3059e6e | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix DefinedType Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 4090f5e | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Add Comparison enum Use it for AsPathLength and CommunityCount messages. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | ba320b9 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix TableType Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | f90229f | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Delete Conditions_ROUTE_TYPE_NONE enum Use Conditions_ROUTE_TYPE_UNSPECIFIED instead. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 01aa41c | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Delete OriginType_ORIGIN_TYPE_NONE enum Use OriginType_ORIGIN_TYPE_UNSPECIFIED instead. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 15ecc11 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix OriginType Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 9741584 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix Type Enum in CommunityAction Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 08e722c | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix DumpType Enum in EnableMrtRequest Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 92b25a2 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix MonitoringPolicy Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | bc90ff7 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix MedAction Enum Use _UNSPECIFIED prefix for zero. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | cef0c99 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix Enum prefix Use _UNSPECIFIED prefix for Enum zero value name: WatchEventRequest::Type ResetPeerRequest::Direction TableLookupPrefix::Type Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | fb87444 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix Enum prefix Use _UNSPECIFIED prefix for Enum zero value name: PeerEvent::Type ListPathRequest::SortType RouteAction PolicyDirection Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 28235f7 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix AddPath Cap Enum Use _UNSPECIFIED prefix for Enum zero value name. Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 91d1a81 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix SetLogLevel Enum Use _UNSPECIFIED prefix for Enum zero value name. Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | cd39bdb | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Fix Enum prefix Use _UNSPECIFIED prefix for Enum zero value name. Fix only the simple cases where the enum zero value was unused. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | eb6fc82 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: Make field names lower_snake_case Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | ddb0c14 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
api: remove google.protobuf.Empty usage Fix buf lint warnings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 286c54a | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Fix proto file format Execute 'buf format -w' command. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 41e0a64 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
api: Use api package name instead of apipb Most of code import apipb as api so just use api. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 6b792af | |
|---|---|---|
| Author: | FUJITA Tomonori | |
Introduce buf for managing Protobuf files Set up buf with initial configuration files to manage Protobuf schemas. This improves consistency, linting, and breaking change detection across the project. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 93ee12a | |
|---|---|---|
| Author: | Tuetuopay | |
| Committer: | FUJITA Tomonori | |
api: Replace google.protobuf.Any with oneof For type safe and better performance. More information can be found at the following link: https://github.com/osrg/gobgp/pull/2880 [commit message written by Tomo]
| Commit: | 1c3868b | |
|---|---|---|
| Author: | FUJITA Tomonori | |
Bump major version from 3 to 4 Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | e2ce0d4 | |
|---|---|---|
| Author: | watal | |
| Committer: | watal | |
ADD: SRv6 SID NLRI Co-authored-by: Yuta Fukagawa <25516089+yfskyline@users.noreply.github.com> Co-authored-by: Taisei Tanabe <tanabe@nwlab.org> Co-authored-by: Shuto Masuda <shuto67cow@gmail.com>
| Commit: | 16ea4f9 | |
|---|---|---|
| Author: | Jeremiah Millay | |
| Committer: | Jeremiah Millay | |
Add neighbor config option to bypass as-path loop detection on local (static) routes
| Commit: | 0148e2d | |
|---|---|---|
| Author: | wenovus | |
Support policy predicate `set next-hop peer-address` e.g. https://www.cisco.com/c/en/us/td/docs/routers/crs/software/crs_r4-0/routing/command/reference/rr40crs1book_chapter8.html#wp710515721:~:text=Sets%20the%20next%2Dhop%20to%20the%20IP%20address%20of%20the%20remote%20Border%20Gateway%20Protocol%20%28BGP%29%20peer
| Commit: | d2ac253 | |
|---|---|---|
| Author: | wenovus | |
| Committer: | wenovus | |
Support `SetRouteOrigin` and `OriginEq` BGP Policy Predicates
| Commit: | 0dfa367 | |
|---|---|---|
| Author: | Donatas Abraitis | |
| Committer: | Donatas Abraitis | |
Inherit software version capability from peer-group Fixes: 15f9d5c64c98d1db273cc45e95fcc11843fba4b5 ("Add SoftwareVersion capability") Fixes: https://github.com/osrg/gobgp/issues/2767 Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| Commit: | 85ef4d3 | |
|---|---|---|
| Author: | Tuetuopay | |
| Committer: | Tuetuopay | |
Add BatchSize parameter to WatchEvent When dealing with large BGP instances, the path list can be so large it makes a response message larger than the gRPC max message size. This adds a BatchSize field to the request to send at most BatchSize paths in a single WatchEventResponse message, greatly limiting the size of each stream item. For reference, this was hit on a production BGP-EVPN instances with over 80k paths. # gobgp mon --current global rib -a evpn rpc error: code = ResourceExhausted desc = grpc: received message larger than max (140281387 vs. 4194304) Setting a batch size allows us to get the current full table without resorting to ListPaths calls, with all the synchronization issues that ensues. This is pretty important because the limit can be reached quite quickly: we observed single paths well over 15kB on the wire, and even a batch size of 4096 leads to oversized messages (already a far cry from the 80k of the default implementation).
| Commit: | 9fbc037 | |
|---|---|---|
| Author: | Maxime Peim | |
| Committer: | FUJITA Tomonori | |
send-max: respect configuration
| Commit: | 7ef2f0b | |
|---|---|---|
| Author: | wenovus | |
| Committer: | FUJITA Tomonori | |
Add CommunityCount BGP Policy Condition This is intended to have the same behaviour as [these OpenConfig paths](https://openconfig.net/projects/models/schemadocs/yangdoc/openconfig-routing-policy.html#routing-policy-policy-definitions-policy-definition-statements-statement-conditions-bgp-conditions-community-count): * /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/bgp-conditions/community-count/config/operator * /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/bgp-conditions/community-count/config/value
| Commit: | ed87360 | |
|---|---|---|
| Author: | Rinat Baygildin | |
| Committer: | FUJITA Tomonori | |
Add EOR type to Table's filter on Watch method Signed-off-by: Rinat Baygildin <bayrinat@yandex-team.ru>
| Commit: | 9d05544 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
Revert "Add EOR type to Table's filter on Watch method" This reverts commit aff055b44d0f036da26f5d82275d15e3cb23fee0. This breaks WatchEvent API: https://github.com/osrg/gobgp/issues/2777
| Commit: | aff055b | |
|---|---|---|
| Author: | Rinat Baygildin | |
| Committer: | FUJITA Tomonori | |
Add EOR type to Table's filter on Watch method Signed-off-by: Rinat Baygildin <bayrinat@yandex-team.ru>
| Commit: | 270ee41 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | Yuya Kusakabe | |
mup: add Source Address to Type 1 ST Route This patch adds Source Address to Type 1 ST Route as defined in draft-mpmz-bess-mup-safi-03. See https://datatracker.ietf.org/doc/html/draft-mpmz-bess-mup-safi-03#section-3.1.3
| Commit: | 16412bf | |
|---|---|---|
| Author: | Jeremiah Millay | |
Add replace option to AddDefinedSet rpc
| Commit: | 146b2b8 | |
|---|---|---|
| Author: | Vladislav Grishenko | |
| Committer: | FUJITA Tomonori | |
server: improve ListPath's memory consumption with batched send With a lot of paths (hundreds of thousands) gobgp may oom or stuck in swapping. Allow to specify max batch size via grpc and keep unlimited batch size by default since 21093fbc8739d0a8e4f84ec6e52c98dad0894612 without preallocation on the first run, so it still should not affect perfomance/allocations with small ammount of paths. Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
| Commit: | 35bfc96 | |
|---|---|---|
| Author: | Kirill Pletnev | |
| Committer: | Kirill 'horseinthesky' Pletnev | |
CLI VPNv4/VPNv6 filtering gobgp CLI can filter VPNv4/VPNv6 prefixes with or without rd.
| Commit: | b8e17e0 | |
|---|---|---|
| Author: | Rinat Baygildin | |
| Committer: | FUJITA Tomonori | |
Use filter for watch pre/post-update watch events Filtering by peer address worked only for initial state. Using watch event's filter allows to use it for each event and could be extended by other conditions, e.g. peer group. peer_address and peer_group were added to API (backward compatible). Signed-off-by: Rinat Baygildin <bayrinat@yandex-team.ru>
| Commit: | 7109696 | |
|---|---|---|
| Author: | menetelk0 | |
Updating support of L2VPN VPLS address family (AFI 25, SAFI 65)
| Commit: | c556ca4 | |
|---|---|---|
| Author: | Donatas Abraitis | |
| Committer: | FUJITA Tomonori | |
Add SoftwareVersion capability https://datatracker.ietf.org/doc/html/draft-abraitis-bgp-version-capability Working example with FRR ``` % ./gobgp neighbor 192.168.10.124 BGP neighbor is 192.168.10.124, remote AS 65001 BGP version 4, remote router ID 200.200.200.202 BGP state = ESTABLISHED, up for 00:01:14 BGP OutQ = 0, Flops = 0 Hold time is 3, keepalive interval is 1 seconds Configured hold time is 90, keepalive interval is 30 seconds Neighbor capabilities: multiprotocol: ipv6-unicast: advertised ipv4-unicast: advertised and received route-refresh: advertised and received extended-nexthop: advertised Local: nlri: ipv4-unicast, nexthop: ipv6 UnknownCapability(6): received UnknownCapability(9): received graceful-restart: advertised and received Local: restart time 10 sec ipv6-unicast ipv4-unicast Remote: restart time 120 sec, notification flag set ipv4-unicast, forward flag set 4-octet-as: advertised and received add-path: received Remote: ipv4-unicast: receive enhanced-route-refresh: received long-lived-graceful-restart: advertised and received Local: ipv6-unicast, restart time 10 sec ipv4-unicast, restart time 20 sec Remote: ipv4-unicast, restart time 0 sec, forward flag set fqdn: advertised and received Local: name: donatas-pc, domain: Remote: name: spine1-debian-11, domain: software-version: advertised and received Local: GoBGP/3.10.0 Remote: FRRouting/8.5-dev-MyOwnFRRVersion-gdc92f44a4 cisco-route-refresh: received Message statistics: ``` FRR side: ``` root@spine1-debian-11:~# vtysh -c 'show bgp neighbor 192.168.10.17 json' | \ > jq '."192.168.10.17".neighborCapabilities.softwareVersion.receivedSoftwareVersion' "GoBGP/3.10.0" root@spine1-debian-11:~# ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
| Commit: | cfb39b1 | |
|---|---|---|
| Author: | yas-nyan | |
| Committer: | yas-nyan | |
re-design BgpPeerSegment protobuf
| Commit: | d1cd6b3 | |
|---|---|---|
| Author: | kanaya516 | |
BGP-Confederation for BGP-LS EPE
| Commit: | 70f4e8a | |
|---|---|---|
| Author: | kanaya516 | |
| Committer: | kanaya516 | |
add BGP-LS EPE
| Commit: | a3f1d8c | |
|---|---|---|
| Author: | Rinat Baygildin | |
Add enable_only_binary flag to grpc ListPath method Adding enable_only_binary allows using only binary representation of nlri and attributes on the ListPath call. For clients who uses only binary representation it helps to significantly reduce resource consumption by refusing unnecessary conversion. It is vital while processing a large number of paths, e.g. full-view. This change doesn't break backward compatibility.
| Commit: | 629b2c1 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | FUJITA Tomonori | |
api,mup: remove unused prefix_length field in MUPInterworkSegmentDiscoveryRoute
| Commit: | 0f377b3 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | Yuya Kusakabe | |
api,pkg/packet/bgp: fix SRv6 Endpoint Behavior for MUP values
| Commit: | 0a18fce | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | FUJITA Tomonori | |
Fix typo in SRv6 SID Structure Sub-Sub-TLV See https://www.rfc-editor.org/rfc/rfc9252.html#section-3.2.1
| Commit: | 30b9599 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | FUJITA Tomonori | |
pkg/packet/bgp: refactor Prefix-SID - Add TLVType contant values. - Add NewPathAttributePrefixSID(). - Add SRv6ServiceTLV to support SRv6 L2 Service TLV. - Move reserved field handling to each type of TLV, because header and reserved field size are different for each type. For more details, see https://www.rfc-editor.org/rfc/rfc8669.html and https://www.rfc-editor.org/rfc/rfc9252.html.
| Commit: | 975db96 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
| Committer: | Yuya Kusakabe | |
mup: handle Type 1 ST Route Prefix as Prefix instead of single address See https://www.ietf.org/archive/id/draft-mpmz-bess-mup-safi-01.html#name-bgp-type-1-session-transfor for details.
| Commit: | 06af56e | |
|---|---|---|
| Author: | Yuya Kusakabe | |
pkg/packet/bgp,api: add SRv6 behavior for SRv6 MUP - End.M.GTP6.D: 45 - End.M.GTP6.Di: 46 - End.M.GTP6.E: 47 - End.M.GTP4.E: 48 https://www.iana.org/assignments/segment-routing/segment-routing.xhtml
| Commit: | 438f246 | |
|---|---|---|
| Author: | Yuya Kusakabe | |
cli: initial support for BGP-MUP SAFI and Extended Community
| Commit: | 229d116 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
clean up FQDNCapability message - we don't need hostlen and domainlen. - use camel case. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 2032f59 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
add filename variable DisableMrtRequest needs to specify which mrt instance is supposed to be disabled. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 711063a | |
|---|---|---|
| Author: | FUJITA Tomonori | |
Add ListBmp API Get the status of BMP stations. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | c9374d3 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
fix mrt proto typo also make it consistent with config definition. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | ea58a91 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
Add WatchEvent API to replace MonitorPeer and MonitorTable get peer and path events in order. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 030274e | |
|---|---|---|
| Author: | night | |
| Committer: | FUJITA Tomonori | |
Fix spelling of LinkBandwidth
| Commit: | 6fc43b1 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
proto: avoid global enum definitions when possible Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 6eeabdf | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
proto: replace 'as' with 'asn' For consistency, always use 'asn' instead of 'as', 'as_number', etc. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 15920c9 | |
|---|---|---|
| Author: | FUJITA Tomonori | |
proto: clean up peer messages Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | f75661f | |
|---|---|---|
| Author: | FUJITA Tomonori | |
proto: add DumpType to EnableMrtRequest Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 24ae33b | |
|---|---|---|
| Author: | FUJITA Tomonori | |
proto: define AsSegment Type enum Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | dd270fc | |
|---|---|---|
| Author: | Vallimamod Abdullah | |
| Committer: | FUJITA Tomonori | |
api: defines LsOspfRouteType enum for LsPrefixDescriptor Allows better serialization as this field is automatically removed from prefix descriptor when empty/unknown instead of getting `LsOspfRouteType(0)` default value from Stringer.
| Commit: | 4b11fc7 | |
|---|---|---|
| Author: | Vallimamod Abdullah | |
| Committer: | FUJITA Tomonori | |
api: corrects typo in validation reason enum (s/reasot/reason/)
| Commit: | c593d7c | |
|---|---|---|
| Author: | FUJITA Tomonori | |
| Committer: | FUJITA Tomonori | |
switch to Go API v2 for protobuf seems that sticking to Go API v1 for protobuf is headache for projects using GoBGP. This breaks the compatibility so bumps up the major version to 3. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
| Commit: | 27b80a9 | |
|---|---|---|
| Author: | Donatas Abraitis | |
| Committer: | FUJITA Tomonori | |
bgp: Implement BGP link-bandwidth extended community Receiving ========= Extended communities sent from FRR side: ``` route-map lb permit 10 set extcommunity bandwidth 10 set extcommunity soo 65001:123 exit ``` On GoBGP side it's decoded as 125000 as IEEE floating-point. ``` % sudo ./gobgp global rib 192.168.100.1/32 --json | jq '."192.168.100.1/32"' [ { "nlri": { "prefix": "192.168.100.1/32" }, "age": 1632128843, "best": true, "attrs": [ { "type": 1, "value": 2 }, { "type": 2, "as_paths": [ { "segment_type": 2, "num": 1, "asns": [ 65534 ] } ] }, { "type": 3, "nexthop": "192.168.10.123" }, { "type": 4, "metric": 0 }, { "type": 16, "value": [ { "type": 64, "subtype": 4, "asn": 65534, "bandwidth": 1250000 }, { "type": 0, "subtype": 3, "value": "65001:123" } ] } ], "stale": false, "source-id": "192.168.100.2", "neighbor-ip": "192.168.10.123" } ] ``` Sending ======= When sending from GoBGP side: ``` [[policy-definitions]] name = "policy1" [[policy-definitions.statements]] [policy-definitions.statements.actions.bgp-actions.set-ext-community] options = "replace" [policy-definitions.statements.actions.bgp-actions.set-ext-community.set-ext-community-method] communities-list = ["lb:65021:125000"] ``` We get properly encoded/decoded in FRR as well: ``` ~# vtysh -c 'show ip bgp 10.33.0.0/16 json' | grep 'LB:' "string":"RT:300:400 SoO:100:200 LB:65021:125000 (1.000 Mbps)" ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| Commit: | c114e04 | |
|---|---|---|
| Author: | Donatas Abraitis | |
| Committer: | FUJITA Tomonori | |
Handle ttl-security option correctly It wasn't configurable at all. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| Commit: | 92f37d6 | |
|---|---|---|
| Author: | zvfvrv | |
| Committer: | FUJITA Tomonori | |
SegmentTypeB proto definition
| Commit: | 94d720f | |
|---|---|---|
| Author: | Donatas Abraitis | |
Add FQDN capability It's not kinda RFC (draft), but it's implemented and used in various other open-source software like FRRouting, Bird, ExaBGP. It's very handy when dealing with lots of peers. Exampe between GoBGP and FRRouting: ``` % ./cmd/gobgp/gobgp neighbor 192.168.10.123 | grep -A4 fqdn: fqdn: advertised and received Local: name: donatas-pc, domain: Remote: name: exit1-debian-9, domain: ``` ``` % vtysh -c 'show bgp neighbors 192.168.10.17 json' | jq .'"192.168.10.17".neighborCapabilities.hostName' { "advHostName": "exit1-debian-9", "advDomainName": "n/a", "rcvHostName": "donatas-pc", "rcvDomainName": "n/a" } ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| Commit: | 9e98fcf | |
|---|---|---|
| Author: | Carl Baldwin | |
| Committer: | Carl Baldwin | |
Do not suppress initial non-established peer state in MonitorPeer The issue with the initial update was that sometimes a connection had not yet been established. Trying to get remote and local connection data caused a segmentation violation because `fsm.conn` was nil. Also adds a flag to MonitorPeerRequest in the GRPC API to enable the new behavior to avoid backward incompatibility. fixes #2047
| Commit: | 3c437e5 | |
|---|---|---|
| Author: | Marcus Wichelmann | |
| Committer: | Marcus Wichelmann | |
Added ListDynamicNeighbor message to API
| Commit: | 76f40ed | |
|---|---|---|
| Author: | Marcus Wichelmann | |
| Committer: | Marcus Wichelmann | |
Added DeleteDynamicNeighbor message to API
| Commit: | c1e7463 | |
|---|---|---|
| Author: | Marcus Wichelmann | |
| Committer: | Marcus Wichelmann | |
Added ListPeerGroup message to API
| Commit: | 390e312 | |
|---|---|---|
| Author: | Mikael Magnusson | |
| Committer: | FUJITA Tomonori | |
add support for tunnel egress endpoint sub-TLV As specified in draft-ietf-idr-tunnel-encaps-22. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
| Commit: | cd5671b | |
|---|---|---|
| Author: | Faicker Mo | |
| Committer: | FUJITA Tomonori | |
policy: add nexthop unchanged Support config set-next-hop = "unchanged" and also cli command. Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
| Commit: | 3339f97 | |
|---|---|---|
| Author: | Milan Lenco | |
| Committer: | FUJITA Tomonori | |
feat: add option to bind listener to a (VRF) device Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
| Commit: | 4c8ab0d | |
|---|---|---|
| Author: | Mikael Magnusson | |
| Committer: | FUJITA Tomonori | |
support UDP destination port sub-TLV As specified in draft-ietf-idr-tunnel-encaps. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
| Commit: | 57068b1 | |
|---|---|---|
| Author: | Serguei Bezverkhi | |
| Committer: | FUJITA Tomonori | |
Add documentation, fix typo in proto and add marshal for tunne encal sub tlvs Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>