/* * Copyright 2017 The Android Open Source Project * * 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 * * http://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. */ package android.system.net.netd@1.0; /** * This is the root of the HAL module and is the interface returned when * loading an implementation of the INetd HAL. */ interface INetd { /** * Return values for INetd requests */ enum StatusCode : int32_t { OK, INVALID_ARGUMENTS, NO_NETWORK, ALREADY_EXISTS, PERMISSION_DENIED, UNKNOWN_ERROR }; /** * Creates a physical network to be used for interfaces managed by the OEM * * @return networkHandle a handle to the OEM network. Zero implies * no networks are available and created * @return packetMark The packet mark that vendor network stack configuration code must use when * routing packets to this network. No applications may use this mark. They must * instead pass the networkHandle to the android_set*network LL-NDK APIs. * @return status operation status */ @entry @callflow(next={"*"}) createOemNetwork() generates (uint64_t networkHandle, uint32_t packetMark, StatusCode status); /** * Destroys the specified network previously created using createOemNetwork() * * @return status operation status */ @exit @callflow(next="createOemNetwork") destroyOemNetwork(uint64_t networkHandle) generates (StatusCode status); };