syntax = "proto3"; package felinet; service Handler { rpc Login(LoginRequest) returns (LoginResponse); rpc PushPackets(stream Packet) returns (PushPacketResponse); rpc GetPackets(PacketFilter) returns (stream Packet); } message LoginRequest { string username = 1; string password = 2; } message LoginResponse { bool success = 1; uint32 error = 2; string msg = 3; } message PushPacketResponse {} message Packet { bytes raw = 1; } message PacketFilter { oneof filter { uint32 all = 1; DistanceFilter dist = 2; CallsignFilter dest = 3; } } message DistanceFilter { float latitude = 1; float longitude = 2; float distance = 3; } message CallsignFilter { string callsign = 1; uint32 ssid = 2; }