Documentation
¶
Overview ¶
This is partial implementation of BFD protocol (https://datatracker.ietf.org/doc/html/rfc5880) only for fast detection of connection failures between BGP peers.
Index ¶
- Constants
- func NewBfdPeer(ps peerState, logger *slog.Logger, peerAddress netip.Addr, config oc.BfdConfig, ...) *bfdPeer
- func NewBfdServer(ps peerState, logger *slog.Logger) *bfdServer
- func PeerTypeFromApi(a api.PeerType) (oc.PeerType, error)
- type BgpServer
- func (s *BgpServer) AddBmp(ctx context.Context, r *api.AddBmpRequest) error
- func (s *BgpServer) AddDefinedSet(ctx context.Context, r *api.AddDefinedSetRequest) error
- func (s *BgpServer) AddDynamicNeighbor(ctx context.Context, r *api.AddDynamicNeighborRequest) error
- func (s *BgpServer) AddPath(req apiutil.AddPathRequest) ([]apiutil.AddPathResponse, error)
- func (s *BgpServer) AddPeer(ctx context.Context, r *api.AddPeerRequest) error
- func (s *BgpServer) AddPeerGroup(ctx context.Context, r *api.AddPeerGroupRequest) error
- func (s *BgpServer) AddPolicy(ctx context.Context, r *api.AddPolicyRequest) error
- func (s *BgpServer) AddPolicyAssignment(ctx context.Context, r *api.AddPolicyAssignmentRequest) error
- func (s *BgpServer) AddRpki(ctx context.Context, r *api.AddRpkiRequest) error
- func (s *BgpServer) AddStatement(ctx context.Context, r *api.AddStatementRequest) error
- func (s *BgpServer) AddVrf(ctx context.Context, r *api.AddVrfRequest) error
- func (s *BgpServer) DeleteBmp(ctx context.Context, r *api.DeleteBmpRequest) error
- func (s *BgpServer) DeleteDefinedSet(ctx context.Context, r *api.DeleteDefinedSetRequest) error
- func (s *BgpServer) DeleteDynamicNeighbor(ctx context.Context, r *api.DeleteDynamicNeighborRequest) error
- func (s *BgpServer) DeletePath(req apiutil.DeletePathRequest) error
- func (s *BgpServer) DeletePeer(ctx context.Context, r *api.DeletePeerRequest) error
- func (s *BgpServer) DeletePeerGroup(ctx context.Context, r *api.DeletePeerGroupRequest) error
- func (s *BgpServer) DeletePolicy(ctx context.Context, r *api.DeletePolicyRequest) error
- func (s *BgpServer) DeletePolicyAssignment(ctx context.Context, r *api.DeletePolicyAssignmentRequest) error
- func (s *BgpServer) DeleteRpki(ctx context.Context, r *api.DeleteRpkiRequest) error
- func (s *BgpServer) DeleteStatement(ctx context.Context, r *api.DeleteStatementRequest) error
- func (s *BgpServer) DeleteVrf(ctx context.Context, r *api.DeleteVrfRequest) error
- func (s *BgpServer) DisableMrt(ctx context.Context, r *api.DisableMrtRequest) error
- func (s *BgpServer) DisablePeer(ctx context.Context, r *api.DisablePeerRequest) error
- func (s *BgpServer) DisableRpki(ctx context.Context, r *api.DisableRpkiRequest) error
- func (s *BgpServer) EnableMrt(ctx context.Context, r *api.EnableMrtRequest) error
- func (s *BgpServer) EnablePeer(ctx context.Context, r *api.EnablePeerRequest) error
- func (s *BgpServer) EnableRpki(ctx context.Context, r *api.EnableRpkiRequest) error
- func (s *BgpServer) EnableZebra(ctx context.Context, r *api.EnableZebraRequest) error
- func (s *BgpServer) GetBfdServerStats() *api.BfdState
- func (s *BgpServer) GetBgp(ctx context.Context, r *api.GetBgpRequest) (rsp *api.GetBgpResponse, err error)
- func (s *BgpServer) GetTable(ctx context.Context, r *api.GetTableRequest) (*api.GetTableResponse, error)
- func (s *BgpServer) ListBfdPeer(ctx context.Context, fn func(string, *api.BfdPeerState))
- func (s *BgpServer) ListBmp(ctx context.Context, req *api.ListBmpRequest, ...) error
- func (s *BgpServer) ListDefinedSet(ctx context.Context, r *api.ListDefinedSetRequest, fn func(*api.DefinedSet)) error
- func (s *BgpServer) ListDynamicNeighbor(ctx context.Context, r *api.ListDynamicNeighborRequest, ...) error
- func (s *BgpServer) ListPath(r apiutil.ListPathRequest, fn func(prefix bgp.NLRI, paths []*apiutil.Path)) error
- func (s *BgpServer) ListPeer(ctx context.Context, r *api.ListPeerRequest, fn func(*api.Peer)) error
- func (s *BgpServer) ListPeerGroup(ctx context.Context, r *api.ListPeerGroupRequest, fn func(*api.PeerGroup)) error
- func (s *BgpServer) ListPolicy(ctx context.Context, r *api.ListPolicyRequest, fn func(*api.Policy)) error
- func (s *BgpServer) ListPolicyAssignment(ctx context.Context, r *api.ListPolicyAssignmentRequest, ...) error
- func (s *BgpServer) ListRpki(ctx context.Context, r *api.ListRpkiRequest, fn func(*api.Rpki)) error
- func (s *BgpServer) ListRpkiTable(ctx context.Context, r *api.ListRpkiTableRequest, fn func(*api.Roa)) error
- func (s *BgpServer) ListStatement(ctx context.Context, r *api.ListStatementRequest, fn func(*api.Statement)) error
- func (s *BgpServer) ListVrf(ctx context.Context, r *api.ListVrfRequest, fn func(*api.Vrf)) error
- func (s *BgpServer) Log() *slog.Logger
- func (s *BgpServer) ResetPeer(ctx context.Context, r *api.ResetPeerRequest) error
- func (s *BgpServer) ResetRpki(ctx context.Context, r *api.ResetRpkiRequest) error
- func (s *BgpServer) Serve()
- func (s *BgpServer) SetLogLevel(ctx context.Context, r *api.SetLogLevelRequest) error
- func (s *BgpServer) SetPolicies(ctx context.Context, r *api.SetPoliciesRequest) error
- func (s *BgpServer) SetPolicyAssignment(ctx context.Context, r *api.SetPolicyAssignmentRequest) error
- func (s *BgpServer) ShutdownPeer(ctx context.Context, r *api.ShutdownPeerRequest) error
- func (s *BgpServer) StartBgp(ctx context.Context, r *api.StartBgpRequest) error
- func (s *BgpServer) Stop()
- func (s *BgpServer) StopBgp(ctx context.Context, r *api.StopBgpRequest) error
- func (s *BgpServer) UpdatePeer(ctx context.Context, r *api.UpdatePeerRequest) (rsp *api.UpdatePeerResponse, err error)
- func (s *BgpServer) UpdatePeerGroup(ctx context.Context, r *api.UpdatePeerGroupRequest) (rsp *api.UpdatePeerGroupResponse, err error)
- func (s *BgpServer) WatchEvent(ctx context.Context, callbacks WatchEventMessageCallbacks, opts ...WatchOption) error
- type FSMOperation
- type FSMTimingHook
- type ServerOption
- type WatchEventMessageCallbacks
- type WatchOption
Constants ¶
View Source
const (
BfdServerPort = 3784
)
RFC 5881 requires the BFD server to listen on port 3784. Per-peer BfdConfig.Port configures the destination port for outgoing packets and may differ, but the listen port is not user-configurable.
Variables ¶
This section is empty.
Functions ¶
func NewBfdPeer ¶ added in v4.6.0
func NewBfdServer ¶ added in v4.6.0
Types ¶
type BgpServer ¶
type BgpServer struct {
// contains filtered or unexported fields
}
func NewBgpServer ¶
func NewBgpServer(opt ...ServerOption) *BgpServer
func (*BgpServer) AddDefinedSet ¶
func (*BgpServer) AddDynamicNeighbor ¶
func (*BgpServer) AddPath ¶
func (s *BgpServer) AddPath(req apiutil.AddPathRequest) ([]apiutil.AddPathResponse, error)
func (*BgpServer) AddPeerGroup ¶
func (*BgpServer) AddPolicyAssignment ¶
func (*BgpServer) AddStatement ¶
func (*BgpServer) DeleteDefinedSet ¶
func (*BgpServer) DeleteDynamicNeighbor ¶
func (*BgpServer) DeletePath ¶
func (s *BgpServer) DeletePath(req apiutil.DeletePathRequest) error
if deleteAll is true, it will delete all locally generated paths, if deleteFamily is set, then the whole family will be deleted if uuids is not empty, it will delete paths with the given UUIDs otherwise it will delete specified paths deleteAll == false and uuids is empty, paths must contain at least one path
func (*BgpServer) DeletePeer ¶
func (*BgpServer) DeletePeerGroup ¶
func (*BgpServer) DeletePolicy ¶
func (*BgpServer) DeletePolicyAssignment ¶
func (*BgpServer) DeleteRpki ¶
func (*BgpServer) DeleteStatement ¶
func (*BgpServer) DisableMrt ¶
func (*BgpServer) DisablePeer ¶
func (*BgpServer) DisableRpki ¶
func (*BgpServer) EnablePeer ¶
func (*BgpServer) EnableRpki ¶
func (*BgpServer) EnableZebra ¶
func (*BgpServer) GetBfdServerStats ¶ added in v4.6.0
func (*BgpServer) GetBgp ¶
func (s *BgpServer) GetBgp(ctx context.Context, r *api.GetBgpRequest) (rsp *api.GetBgpResponse, err error)
func (*BgpServer) GetTable ¶
func (s *BgpServer) GetTable(ctx context.Context, r *api.GetTableRequest) (*api.GetTableResponse, error)
func (*BgpServer) ListBfdPeer ¶ added in v4.6.0
func (*BgpServer) ListBmp ¶
func (s *BgpServer) ListBmp(ctx context.Context, req *api.ListBmpRequest, fn func(*api.ListBmpResponse_BmpStation)) error
func (*BgpServer) ListDefinedSet ¶
func (s *BgpServer) ListDefinedSet(ctx context.Context, r *api.ListDefinedSetRequest, fn func(*api.DefinedSet)) error
func (*BgpServer) ListDynamicNeighbor ¶
func (s *BgpServer) ListDynamicNeighbor(ctx context.Context, r *api.ListDynamicNeighborRequest, fn func(neighbor *api.DynamicNeighbor)) error
func (*BgpServer) ListPeerGroup ¶
func (*BgpServer) ListPolicy ¶
func (*BgpServer) ListPolicyAssignment ¶
func (s *BgpServer) ListPolicyAssignment(ctx context.Context, r *api.ListPolicyAssignmentRequest, fn func(*api.PolicyAssignment)) error
func (*BgpServer) ListRpkiTable ¶
func (*BgpServer) ListStatement ¶
func (*BgpServer) SetLogLevel ¶
func (*BgpServer) SetPolicies ¶
func (*BgpServer) SetPolicyAssignment ¶
func (*BgpServer) ShutdownPeer ¶
func (*BgpServer) UpdatePeer ¶
func (s *BgpServer) UpdatePeer(ctx context.Context, r *api.UpdatePeerRequest) (rsp *api.UpdatePeerResponse, err error)
func (*BgpServer) UpdatePeerGroup ¶
func (s *BgpServer) UpdatePeerGroup(ctx context.Context, r *api.UpdatePeerGroupRequest) (rsp *api.UpdatePeerGroupResponse, err error)
func (*BgpServer) WatchEvent ¶
func (s *BgpServer) WatchEvent(ctx context.Context, callbacks WatchEventMessageCallbacks, opts ...WatchOption) error
type FSMOperation ¶
type FSMOperation uint
const ( FSMMgmtOp FSMOperation = iota FSMAccept FSMROAEvent FSMMessage FSMOperationTypeCount )
type FSMTimingHook ¶
type FSMTimingHook interface {
Observe(op FSMOperation, tOp, tWait time.Duration)
}
type ServerOption ¶
type ServerOption func(*options)
func GrpcListenAddress ¶
func GrpcListenAddress(addr string) ServerOption
func GrpcOption ¶
func GrpcOption(opt []grpc.ServerOption) ServerOption
func LoggerOption ¶
func LoggerOption(logger *slog.Logger, levelVar *slog.LevelVar) ServerOption
func TimingHookOption ¶
func TimingHookOption(hook FSMTimingHook) ServerOption
type WatchOption ¶
type WatchOption func(*watchOptions)
func WatchBestPath ¶
func WatchBestPath(current bool) WatchOption
func WatchEor ¶
func WatchEor(current bool) WatchOption
func WatchPeer ¶
func WatchPeer() WatchOption
func WatchPostUpdate ¶
func WatchPostUpdate(current bool, peerAddress string, peerGroup string) WatchOption
func WatchUpdate ¶
func WatchUpdate(current bool, peerAddress string, peerGroup string) WatchOption
Click to show internal directories.
Click to hide internal directories.