Proto commits in osrg/gobgp

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>