example_grpc/protos/katran.proto (123 lines of code) (raw):

/* Copyright (C) 2018-present, Facebook, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ syntax = "proto3"; package lb.katran; message Empty {} enum Action { ADD = 0; DEL = 1; } message Bool { bool success = 1; } message Vip { string address = 1; int32 port = 2; int32 protocol = 3; } message VipMeta { Vip vip = 1; int64 flags = 2; /* * setFlag controls if we setting this flags or removing it from the VIP */ bool setFlag = 3; } message RealMeta { string address = 1; int32 flags = 2; /* * setFlag controls if we setting this flags or removing it from the Real */ bool setFlag = 3; } message Real { string address = 1; int32 weight = 2; int32 flags = 3; } message QuicReal { string address = 1; int32 id = 2; } message Mac { string mac = 1; } message Stats { uint64 v1 = 1; uint64 v2 = 2; } message Healthcheck { uint32 somark = 1; string address = 2; } message hcMap { map<int32, string> healthchecks = 1; } message Reals { repeated Real reals = 1; } message Vips { repeated Vip vips = 1; } message QuicReals { repeated QuicReal qreals = 1; } message modifiedRealsForVip { Action action = 1; Reals real = 2; Vip vip = 3; } message modifiedQuicReals { Action action = 1; QuicReals reals = 2; } message realForVip { Real real = 1; Vip vip = 2; } message Flags { uint64 flags = 1; } message Somark { uint32 somark = 1; } service KatranService { rpc changeMac(Mac) returns (Bool); rpc getMac(Empty) returns (Mac); rpc addVip(VipMeta) returns (Bool); rpc delVip(Vip) returns (Bool); rpc getAllVips(Empty) returns (Vips); rpc modifyVip(VipMeta) returns (Bool); rpc modifyReal(RealMeta) returns (Bool); rpc getVipFlags(Vip) returns (Flags); rpc getRealFlags(Real) returns (Flags); rpc addRealForVip(realForVip) returns (Bool); rpc delRealForVip(realForVip) returns (Bool); rpc modifyRealsForVip(modifiedRealsForVip) returns (Bool); rpc getRealsForVip(Vip) returns (Reals); rpc modifyQuicRealsMapping(modifiedQuicReals) returns (Bool); rpc getQuicRealsMapping(Empty) returns (QuicReals); rpc getStatsForVip(Vip) returns (Stats); rpc getLruStats(Empty) returns (Stats); rpc getLruMissStats(Empty) returns (Stats); rpc getLruFallbackStats(Empty) returns (Stats); rpc getIcmpTooBigStats(Empty) returns (Stats); rpc addHealthcheckerDst(Healthcheck) returns (Bool); rpc delHealthcheckerDst(Somark) returns (Bool); rpc getHealthcheckersDst(Empty) returns (hcMap); } option go_package = "./;protos";