mirror of
https://github.com/openziti/ziti.git
synced 2026-09-11 01:05:42 +00:00
48e4d4a224
- adds a link ConfigHandler (router/link FactoryRegistry) that applies router.link.v1 config: Apply rebuilds the listener/dialer set wholesale, and established Xlinks survive because Listener.Close() only closes the accept loop - translates local link: YAML into router.link.v1 JSON and pushes it through the managed-config registry at startup - adds the UpdateLinkListeners ctrl message so the router republishes its listener set to the controller on change; the controller re-fans via the existing PeerStateChange path - re-evaluates dialers on link group and listener changes via RescanForDialOpportunities For #3743.
356 lines
7.1 KiB
Protocol Buffer
356 lines
7.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package ziti.ctrl.pb;
|
|
option go_package = "github.com/openziti/fabric/pb/ctrl_pb";
|
|
|
|
// ContentTypes should be in the range 1000 - 1999, to ensure they don't overlap with cmd_pb messages
|
|
enum ContentType {
|
|
Zero = 0;
|
|
|
|
CircuitRequestType = 1000;
|
|
// defined in ctrl_msg/messages.go now
|
|
// CircuitSuccessType = 1001;
|
|
|
|
// Deprecated now that links are router managed, keeping here for historical and debug purposes
|
|
// DialType = 1002;
|
|
// LinkConnectedType = 1003;
|
|
|
|
FaultType = 1004;
|
|
RouteType = 1005;
|
|
UnrouteType = 1006;
|
|
MetricsType = 1007;
|
|
TogglePipeTracesRequestType = 1008;
|
|
TraceEventType = 1010;
|
|
CreateTerminatorRequestType = 1011;
|
|
RemoveTerminatorRequestType = 1012;
|
|
InspectRequestType = 1013;
|
|
InspectResponseType = 1014;
|
|
// defined in ctrl_msg/messages.go now
|
|
// CircuitFailedType = 1016;
|
|
ValidateTerminatorsRequestType = 1017;
|
|
UpdateTerminatorRequestType = 1018;
|
|
// VerifyLinkType = 1019; Unusable since links are now generated by routers
|
|
SettingsType = 1020;
|
|
CircuitConfirmationType = 1034;
|
|
RouterLinksType = 1035;
|
|
VerifyRouterType = 1036;
|
|
UpdateCtrlAddressesType = 1037;
|
|
|
|
RemoveTerminatorsRequestType = 1038;
|
|
QuiesceRouterRequestType = 1039;
|
|
DequiesceRouterRequestType = 1040;
|
|
ValidateTerminatorsV2RequestType = 1041;
|
|
ValidateTerminatorsV2ResponseType = 1042;
|
|
DecommissionRouterRequestType = 1043;
|
|
|
|
PeerStateChangeRequestType = 1050;
|
|
UpdateClusterLeaderRequestType = 1051;
|
|
|
|
UpdateRouterInterfaces = 1052;
|
|
LinkState = 1053;
|
|
|
|
AlertsType = 1054;
|
|
RequestClusterMembers = 1055;
|
|
UpdateLinkListenersType = 1056;
|
|
}
|
|
|
|
enum ControlHeaders {
|
|
NoneHeader = 0;
|
|
ListenersHeader = 1000;
|
|
RouterMetadataHeader = 1001;
|
|
CapabilitiesHeader = 1002;
|
|
CtrlChanListenersHeader = 1003;
|
|
}
|
|
|
|
enum RouterCapability {
|
|
CapabilityZero = 0;
|
|
LinkManagement = 1;
|
|
}
|
|
|
|
// SettingTypes are used with the Settings message send arbitrary settings to routers.
|
|
// SettingTypes default to int32 which can be used seamlessly for keys in the Settings.data field
|
|
enum SettingTypes {
|
|
//unused, consume to avoid zero value accidents
|
|
UnusedSetting = 0;
|
|
//Sent to routers to notify them of a controller IP/hostname move
|
|
NewCtrlAddress = 1;
|
|
}
|
|
|
|
// Settings are sent to to routers to configure arbitrary runtime settings.
|
|
message Settings {
|
|
map<int32, bytes> data = 1;
|
|
}
|
|
|
|
message CircuitRequest {
|
|
string ingressId = 1;
|
|
string service = 2;
|
|
map<uint32, bytes> peerData = 3;
|
|
}
|
|
|
|
message CircuitConfirmation {
|
|
repeated string circuitIds = 1;
|
|
map<string, int64> idleTimes = 2;
|
|
}
|
|
|
|
enum TerminatorPrecedence {
|
|
Default = 0;
|
|
Required = 1;
|
|
Failed = 2;
|
|
}
|
|
|
|
message CreateTerminatorRequest {
|
|
string serviceId = 2;
|
|
string binding = 3;
|
|
string address = 4;
|
|
map<uint32, bytes> peerData = 5;
|
|
uint32 cost = 6;
|
|
TerminatorPrecedence precedence = 7;
|
|
string instanceId = 8;
|
|
bytes instanceSecret = 9;
|
|
}
|
|
|
|
message RemoveTerminatorRequest {
|
|
string terminatorId = 1;
|
|
}
|
|
|
|
message RemoveTerminatorsRequest {
|
|
repeated string terminatorIds = 1;
|
|
}
|
|
|
|
message Terminator {
|
|
string id = 1;
|
|
string binding = 2;
|
|
string address = 3;
|
|
uint64 marker = 4;
|
|
}
|
|
|
|
message ValidateTerminatorsRequest {
|
|
repeated Terminator terminators = 1;
|
|
}
|
|
|
|
message ValidateTerminatorsV2Request {
|
|
repeated Terminator terminators = 1;
|
|
bool fixInvalid = 2;
|
|
bool postCreate = 3;
|
|
}
|
|
|
|
enum TerminatorInvalidReason {
|
|
UnknownBinding = 0;
|
|
UnknownTerminator = 1;
|
|
BadState = 2;
|
|
}
|
|
|
|
message RouterTerminatorState {
|
|
bool valid = 1;
|
|
TerminatorInvalidReason reason = 2;
|
|
string detail = 3; // inspect info if valid
|
|
uint64 marker = 4;
|
|
}
|
|
|
|
message ValidateTerminatorsV2Response {
|
|
map<string, RouterTerminatorState> states = 1;
|
|
}
|
|
|
|
message UpdateTerminatorRequest {
|
|
string terminatorId = 1;
|
|
bool updatePrecedence = 2;
|
|
bool updateCost = 3;
|
|
TerminatorPrecedence precedence = 4;
|
|
uint32 cost = 5;
|
|
}
|
|
|
|
message LinkConn {
|
|
string type = 1;
|
|
string localAddr = 2;
|
|
string remoteAddr = 3;
|
|
}
|
|
|
|
message LinkConnState {
|
|
uint32 stateIteration = 1;
|
|
repeated LinkConn conns = 2;
|
|
}
|
|
|
|
message RouterLinks {
|
|
message RouterLink {
|
|
string id = 1;
|
|
string destRouterId = 2;
|
|
string linkProtocol = 3;
|
|
reserved 4; // formerly linkCostTags, removed as unused
|
|
reserved "linkCostTags";
|
|
string dialAddress = 5;
|
|
uint32 iteration = 6;
|
|
LinkConnState connState = 7;
|
|
}
|
|
|
|
repeated RouterLink links = 1;
|
|
bool fullRefresh = 2;
|
|
}
|
|
|
|
enum FaultSubject {
|
|
IngressFault = 0;
|
|
EgressFault = 1;
|
|
LinkFault = 2;
|
|
ForwardFault = 3;
|
|
UnknownOwnerForwardFault = 4;
|
|
LinkDuplicate = 5;
|
|
}
|
|
|
|
message Fault {
|
|
FaultSubject subject = 1;
|
|
string id = 2;
|
|
uint32 iteration = 3;
|
|
}
|
|
|
|
message Context {
|
|
map<string, string> fields = 1;
|
|
uint32 channelMask = 2;
|
|
}
|
|
|
|
enum DestType {
|
|
Start = 0;
|
|
End = 1;
|
|
Link = 2;
|
|
}
|
|
|
|
message Route {
|
|
string circuitId = 1;
|
|
uint32 attempt = 2;
|
|
message Egress {
|
|
string binding = 1;
|
|
string address = 2;
|
|
string destination = 3;
|
|
map<uint32, bytes> peerData = 4;
|
|
}
|
|
Egress egress = 3;
|
|
message Forward {
|
|
string srcAddress = 1;
|
|
string dstAddress = 2;
|
|
DestType dstType = 3;
|
|
}
|
|
repeated Forward forwards = 4;
|
|
Context context = 5;
|
|
uint64 timeout = 6;
|
|
map<string, string> tags = 7;
|
|
}
|
|
|
|
message Unroute {
|
|
string circuitId = 1;
|
|
bool now = 2;
|
|
}
|
|
|
|
message InspectRequest {
|
|
repeated string requestedValues = 1;
|
|
}
|
|
|
|
message InspectResponse {
|
|
bool success = 1;
|
|
repeated string errors = 2;
|
|
repeated InspectValue values = 3;
|
|
|
|
message InspectValue {
|
|
string name = 1;
|
|
string value = 2;
|
|
}
|
|
}
|
|
|
|
message VerifyRouter {
|
|
string routerId = 1;
|
|
repeated string fingerprints = 2;
|
|
}
|
|
|
|
message Listener {
|
|
string address = 1;
|
|
string protocol = 2;
|
|
reserved 3; // formerly costTags, removed as unused
|
|
reserved "costTags";
|
|
repeated string groups = 4;
|
|
string localBinding = 5;
|
|
}
|
|
|
|
message Listeners {
|
|
repeated Listener listeners = 1;
|
|
}
|
|
|
|
message CtrlEndpoint {
|
|
string address = 1;
|
|
repeated string groups = 2;
|
|
}
|
|
|
|
message CtrlDetail {
|
|
string id = 1;
|
|
repeated CtrlEndpoint endpoints = 2;
|
|
}
|
|
|
|
message UpdateCtrlAddresses {
|
|
repeated string addresses = 1;
|
|
uint64 index = 2;
|
|
bool isLeader = 3;
|
|
repeated CtrlDetail controllers = 4;
|
|
}
|
|
|
|
message UpdateClusterLeader {
|
|
uint64 index = 1;
|
|
}
|
|
|
|
enum PeerState {
|
|
Healthy = 0;
|
|
Unhealthy = 1;
|
|
Removed = 2;
|
|
}
|
|
|
|
message PeerStateChange {
|
|
string id = 1 ;
|
|
string version = 2;
|
|
PeerState state = 3;
|
|
repeated Listener listeners = 4;
|
|
}
|
|
|
|
message PeerStateChanges {
|
|
repeated PeerStateChange changes = 1;
|
|
}
|
|
|
|
message RouterMetadata {
|
|
repeated RouterCapability capabilities = 1;
|
|
}
|
|
|
|
message Interface {
|
|
string name = 1;
|
|
string hardwareAddress = 2;
|
|
int64 mtu = 3;
|
|
int64 index = 4;
|
|
uint64 flags = 5;
|
|
repeated string addresses = 6;
|
|
}
|
|
|
|
message RouterInterfacesUpdate {
|
|
repeated Interface interfaces = 1;
|
|
}
|
|
|
|
message LinkStateUpdate {
|
|
string linkId = 1;
|
|
uint32 linkIteration = 2;
|
|
LinkConnState connState = 3;
|
|
}
|
|
|
|
message Alert {
|
|
string sourceType = 1;
|
|
string sourceId = 2;
|
|
int64 timestamp = 3;
|
|
string severity = 4;
|
|
string message = 5;
|
|
repeated string details = 6;
|
|
map<string, string> relatedEntities = 7;
|
|
}
|
|
|
|
message Alerts {
|
|
repeated Alert alerts = 1;
|
|
}
|
|
|
|
message CtrlChanListener {
|
|
string address = 1;
|
|
repeated string groups = 2;
|
|
}
|
|
|
|
message CtrlChanListeners {
|
|
repeated CtrlChanListener listeners = 1;
|
|
} |