syntax = "proto3"; package felinet; service Handler { rpc PushPackets(stream Packet) returns (PushPacketResponse); rpc GetPackets(PacketFilter) returns (stream Packet); } 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; }