| /* |
| * 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); |
| }; |