blob: f4b71235ccecf8869c9cf5679ae265c1c6455e4d [file] [log] [blame]
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package location.nearby.mediums;
option optimize_for = LITE_RUNTIME;
option java_outer_classname = "WifiAwareFramesProto";
option java_package = "com.google.location.nearby.mediums.proto";
message WifiAwareFrame {
enum FrameType {
UNKNOWN_FRAME_TYPE = 0;
HOST_NETWORK = 1;
NETWORK_AVAILABLE = 2;
IP_AVAILABLE = 3;
CANCELLATION = 4;
}
optional FrameType type = 1;
// Exactly one of the following fields will be set.
optional HostNetworkFrame host_network = 2;
optional NetworkAvailableFrame network_available = 3;
optional IpAvailableFrame ip_available = 4;
optional CancellationFrame cancellation = 7;
// The id of each frame.
optional int32 frame_id = 5;
// A byte array of size 2. It is the id and comparable token of a WifiAware
// endpoint session.
optional bytes session_id = 6;
}
message HostNetworkFrame {}
message NetworkAvailableFrame {}
message IpAvailableFrame {
// NOTE: We use string here, rather than int. This is because the WiFi Aware
// ip address has a network interface appended to the end. It looks like
// 'fe80::a321:2935:9b2d:d7e7%aware_data0', where the %aware_data0 at the end
// lets Android know which type of network this address is associated with.
// If this information is lost, we won't be able to connect to the remote
// device's ServerSocket.
optional string ip_address = 1;
optional int32 port = 2;
}
message CancellationFrame {}