talos/api/network/network.proto
Andrew Rynhard ad863a7f92 refactor: rename protobuf services, RPCs, and messages
This PR brings our protobuf files into conformance with the protobuf
style guide, and community conventions. It is purely renames, along with
generated docs.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-12-11 11:41:40 -08:00

106 lines
3.1 KiB
Protocol Buffer

syntax = "proto3";
package network;
option go_package = "github.com/talos-systems/talos/api/network";
option java_multiple_files = true;
option java_outer_classname = "NetworkApi";
option java_package = "com.network.api";
import "google/protobuf/empty.proto";
import "common/common.proto";
// The network service definition.
service NetworkService {
rpc Routes(google.protobuf.Empty) returns (RoutesResponse);
rpc Interfaces(google.protobuf.Empty) returns (InterfacesResponse);
}
enum AddressFamily {
option allow_alias = true;
AF_UNSPEC = 0;
AF_INET = 2;
IPV4 = 2;
AF_INET6 = 10;
IPV6 = 10;
}
enum RouteProtocol {
RTPROT_UNSPEC = 0;
RTPROT_REDIRECT = 1; // Route installed by ICMP redirects
RTPROT_KERNEL = 2; // Route installed by kernel
RTPROT_BOOT = 3; // Route installed during boot
RTPROT_STATIC = 4; // Route installed by administrator
RTPROT_GATED = 8; // Route installed by gated
RTPROT_RA = 9; // Route installed by router advertisement
RTPROT_MRT = 10; // Route installed by Merit MRT
RTPROT_ZEBRA = 11; // Route installed by Zebra/Quagga
RTPROT_BIRD = 12; // Route installed by Bird
RTPROT_DNROUTED = 13; // Route installed by DECnet routing daemon
RTPROT_XORP = 14; // Route installed by XORP
RTPROT_NTK = 15; // Route installed by Netsukuku
RTPROT_DHCP = 16; // Route installed by DHCP
RTPROT_MROUTED = 17; // Route installed by Multicast daemon
RTPROT_BABEL = 42; // Route installed by Babel daemon
}
enum InterfaceFlags {
FLAG_UNKNOWN = 0;
FLAG_UP = 1;
FLAG_BROADCAST = 2;
FLAG_LOOPBACK = 3;
FLAG_POINT_TO_POINT = 4;
FLAG_MULTICAST = 5;
}
// The messages message containing the routes.
message RoutesResponse {
repeated Routes messages = 1;
}
message Routes {
common.Metadata metadata = 1;
repeated Route routes = 2;
}
// The messages message containing a route.
message Route {
// Interface is the interface over which traffic to this destination should be sent
string interface = 1;
// Destination is the network prefix CIDR which this route provides
string destination = 2;
// Gateway is the gateway address to which traffic to this destination should be sent
string gateway = 3;
// Metric is the priority of the route, where lower metrics have higher priorities
uint32 metric = 4;
// Scope desribes the scope of this route
uint32 scope = 5;
// Source is the source prefix CIDR for the route, if one is defined
string source = 6;
// Family is the address family of the route. Currently, the only options are AF_INET (IPV4) and AF_INET6 (IPV6).
AddressFamily family = 7;
// Protocol is the protocol by which this route came to be in place
RouteProtocol protocol = 8;
// Flags indicate any special flags on the route
uint32 flags = 9;
}
message InterfacesResponse {
repeated Interfaces messages = 1;
}
message Interfaces {
common.Metadata metadata = 1;
repeated Interface interfaces = 2;
}
// Interface represents a net.Interface
message Interface {
uint32 index = 1;
uint32 mtu = 2;
string name = 3;
string hardwareaddr = 4;
InterfaceFlags flags = 5;
repeated string ipaddress = 6;
}