1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2017 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport @1.0::IWifiChipEventCallback; 20*4d7e907cSAndroid Build Coastguard Workerimport @1.0::WifiBand; 21*4d7e907cSAndroid Build Coastguard Worker 22*4d7e907cSAndroid Build Coastguard Worker/** 23*4d7e907cSAndroid Build Coastguard Worker * Wifi chip event callbacks. 24*4d7e907cSAndroid Build Coastguard Worker */ 25*4d7e907cSAndroid Build Coastguard Workerinterface IWifiChipEventCallback extends @1.0::IWifiChipEventCallback { 26*4d7e907cSAndroid Build Coastguard Worker /** 27*4d7e907cSAndroid Build Coastguard Worker * Struct describing the state of each iface operating on the radio chain 28*4d7e907cSAndroid Build Coastguard Worker * (hardware MAC) on the device. 29*4d7e907cSAndroid Build Coastguard Worker */ 30*4d7e907cSAndroid Build Coastguard Worker struct IfaceInfo { 31*4d7e907cSAndroid Build Coastguard Worker /** Name of the interface (For ex: "wlan0"). */ 32*4d7e907cSAndroid Build Coastguard Worker string name; 33*4d7e907cSAndroid Build Coastguard Worker /** Wifi channel on which this interface is operating. */ 34*4d7e907cSAndroid Build Coastguard Worker uint32_t channel; 35*4d7e907cSAndroid Build Coastguard Worker }; 36*4d7e907cSAndroid Build Coastguard Worker 37*4d7e907cSAndroid Build Coastguard Worker /** 38*4d7e907cSAndroid Build Coastguard Worker * Struct describing the state of each hardware radio chain (hardware MAC) 39*4d7e907cSAndroid Build Coastguard Worker * on the device. 40*4d7e907cSAndroid Build Coastguard Worker */ 41*4d7e907cSAndroid Build Coastguard Worker struct RadioModeInfo { 42*4d7e907cSAndroid Build Coastguard Worker /** 43*4d7e907cSAndroid Build Coastguard Worker * Identifier for this radio chain. This is vendor dependent & used 44*4d7e907cSAndroid Build Coastguard Worker * only for debugging purposes. 45*4d7e907cSAndroid Build Coastguard Worker */ 46*4d7e907cSAndroid Build Coastguard Worker uint32_t radioId; 47*4d7e907cSAndroid Build Coastguard Worker /** 48*4d7e907cSAndroid Build Coastguard Worker * List of bands on which this radio chain is operating. 49*4d7e907cSAndroid Build Coastguard Worker * Can be one of: 50*4d7e907cSAndroid Build Coastguard Worker * a) WifiBand.BAND_24GHZ => 2.4Ghz. 51*4d7e907cSAndroid Build Coastguard Worker * b) WifiBand.BAND_5GHZ => 5Ghz. 52*4d7e907cSAndroid Build Coastguard Worker * c) WifiBand.BAND_24GHZ_5GHZ = 2.4Ghz + 5Ghz (Radio is time sharing 53*4d7e907cSAndroid Build Coastguard Worker * across the 2 bands). 54*4d7e907cSAndroid Build Coastguard Worker */ 55*4d7e907cSAndroid Build Coastguard Worker WifiBand bandInfo; 56*4d7e907cSAndroid Build Coastguard Worker /** List of interfaces on this radio chain (hardware MAC). */ 57*4d7e907cSAndroid Build Coastguard Worker vec<IfaceInfo> ifaceInfos; 58*4d7e907cSAndroid Build Coastguard Worker }; 59*4d7e907cSAndroid Build Coastguard Worker 60*4d7e907cSAndroid Build Coastguard Worker /** 61*4d7e907cSAndroid Build Coastguard Worker * Asynchronous callback indicating a radio mode change. 62*4d7e907cSAndroid Build Coastguard Worker * Radio mode change could be a result of: 63*4d7e907cSAndroid Build Coastguard Worker * a) Bringing up concurrent interfaces (For ex: STA + AP). 64*4d7e907cSAndroid Build Coastguard Worker * b) Change in operating band of one of the concurrent interfaces (For ex: 65*4d7e907cSAndroid Build Coastguard Worker * STA connection moved from 2.4G to 5G) 66*4d7e907cSAndroid Build Coastguard Worker * 67*4d7e907cSAndroid Build Coastguard Worker * @param radioModeInfos List of RadioModeInfo structures for each 68*4d7e907cSAndroid Build Coastguard Worker * radio chain (hardware MAC) on the device. 69*4d7e907cSAndroid Build Coastguard Worker */ 70*4d7e907cSAndroid Build Coastguard Worker oneway onRadioModeChange(vec<RadioModeInfo> radioModeInfos); 71*4d7e907cSAndroid Build Coastguard Worker}; 72