Move proxy/router
This commit is contained in:
		
							
								
								
									
										133
									
								
								router/proto/router.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								router/proto/router.proto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| syntax = "proto3"; | ||||
|  | ||||
| package go.micro.router; | ||||
|  | ||||
| // Router service is used by the proxy to lookup routes | ||||
| service Router { | ||||
| 	rpc Lookup(LookupRequest) returns (LookupResponse) {}; | ||||
|         rpc Watch(WatchRequest) returns (stream Event) {}; | ||||
|         rpc Advertise(Request) returns (stream Advert) {}; | ||||
|         rpc Process(Advert) returns (ProcessResponse) {}; | ||||
| 	rpc Status(Request) returns (StatusResponse) {}; | ||||
| } | ||||
|  | ||||
| service Table { | ||||
| 	rpc Create(Route) returns (CreateResponse) {}; | ||||
|         rpc Delete(Route) returns (DeleteResponse) {}; | ||||
|         rpc Update(Route) returns (UpdateResponse) {}; | ||||
|         rpc List(Request) returns (ListResponse) {}; | ||||
| 	rpc Query(QueryRequest) returns (QueryResponse) {}; | ||||
| } | ||||
|  | ||||
| // Empty request | ||||
| message Request {} | ||||
|  | ||||
| // ListResponse is returned by List | ||||
| message ListResponse { | ||||
| 	repeated Route routes = 1; | ||||
| } | ||||
|  | ||||
| // LookupRequest is made to Lookup | ||||
| message LookupRequest { | ||||
| 	Query query = 1; | ||||
| } | ||||
|  | ||||
| // LookupResponse is returned by Lookup | ||||
| message LookupResponse { | ||||
| 	repeated Route routes = 1; | ||||
| } | ||||
|  | ||||
| message QueryRequest{ | ||||
| 	Query query = 1; | ||||
| } | ||||
|  | ||||
| message QueryResponse { | ||||
| 	repeated Route routes = 1; | ||||
| } | ||||
|  | ||||
| // WatchRequest is made to Watch Router | ||||
| message WatchRequest {} | ||||
|  | ||||
| // AdvertType defines the type of advert | ||||
| enum AdvertType { | ||||
|         AdvertAnnounce = 0; | ||||
|         AdvertUpdate = 1; | ||||
| } | ||||
|  | ||||
| // Advert is router advertsement streamed by Watch | ||||
| message Advert { | ||||
|         // id of the advertising router | ||||
|         string id = 1; | ||||
|         // type of advertisement | ||||
|         AdvertType type = 2; | ||||
|         // unix timestamp of the advertisement | ||||
|         int64 timestamp = 3; | ||||
|         // TTL of the Advert | ||||
|         int64 ttl = 4; | ||||
|         // events is a list of advertised events | ||||
|         repeated Event events = 5; | ||||
| } | ||||
|  | ||||
| // ProcessResponse is returned by Process | ||||
| message ProcessResponse {} | ||||
|  | ||||
| // CreateResponse is returned by Create | ||||
| message CreateResponse {} | ||||
|  | ||||
| // DeleteResponse is returned by Delete | ||||
| message DeleteResponse {} | ||||
|  | ||||
| // UpdateResponse is returned by Update | ||||
| message UpdateResponse {} | ||||
|  | ||||
| // EventType defines the type of event | ||||
| enum EventType { | ||||
|         Create = 0; | ||||
|         Delete = 1; | ||||
|         Update = 2; | ||||
| } | ||||
|  | ||||
| // Event is routing table event | ||||
| message Event { | ||||
|         // type of event | ||||
|         EventType type = 1; | ||||
|         // unix timestamp of event | ||||
|         int64 timestamp = 2; | ||||
|         // service route | ||||
| 	Route route = 3; | ||||
| } | ||||
|  | ||||
| // Query is passed in a LookupRequest | ||||
| message Query { | ||||
| 	// service to lookup | ||||
| 	string service = 1; | ||||
|         // gateway to lookup | ||||
|         string gateway = 2; | ||||
|         // network to lookup | ||||
|         string network = 3; | ||||
| } | ||||
|  | ||||
| // Route is a service route | ||||
| message Route { | ||||
| 	// service for the route | ||||
| 	string service = 1; | ||||
| 	// the address that advertise this route | ||||
| 	string address = 2; | ||||
| 	// gateway as the next hop | ||||
| 	string gateway = 3; | ||||
| 	// the network for this destination | ||||
| 	string network = 4; | ||||
| 	// the network link | ||||
| 	string link = 5; | ||||
| 	// the metric / score of this route | ||||
| 	int64 metric = 6; | ||||
| } | ||||
|  | ||||
| message Status { | ||||
| 	string code = 1; | ||||
| 	string error = 2; | ||||
| } | ||||
|  | ||||
| message StatusResponse { | ||||
| 	Status status = 1; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user