// 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 {}