17e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland/* 27e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Copyright 2017 The Android Open Source Project 37e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * 47e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Licensed under the Apache License, Version 2.0 (the "License"); 57e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * you may not use this file except in compliance with the License. 67e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * You may obtain a copy of the License at 77e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * 87e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * http://www.apache.org/licenses/LICENSE-2.0 97e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * 107e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Unless required by applicable law or agreed to in writing, software 117e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * distributed under the License is distributed on an "AS IS" BASIS, 127e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * See the License for the specific language governing permissions and 147e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * limitations under the License. 157e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland */ 167e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland 177e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Morelandpackage android.system.net.netd@1.0; 187e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland 197e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland/** 207e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * This is the root of the HAL module and is the interface returned when 217e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * loading an implementation of the INetd HAL. 227e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland */ 237e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Morelandinterface INetd { 247e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland /** 257e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Return values for INetd requests 267e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland */ 277e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland enum StatusCode : int32_t { 287e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland OK, 297e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland INVALID_ARGUMENTS, 307e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland NO_NETWORK, 317e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland ALREADY_EXISTS, 327e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland PERMISSION_DENIED, 337e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland UNKNOWN_ERROR 347e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland }; 357e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland 367e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland /** 377e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Creates a physical network to be used for interfaces managed by the OEM 387e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * 397e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * @return networkHandle a handle to the OEM network. Zero implies 407e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * no networks are available and created 417e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * @return packetMark The packet mark that vendor network stack configuration code must use when 427e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * routing packets to this network. No applications may use this mark. They must 437e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * instead pass the networkHandle to the android_set*network LL-NDK APIs. 447e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * @return status operation status 457e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland */ 467e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland @entry 477e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland @callflow(next={"*"}) 487e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland createOemNetwork() generates (uint64_t networkHandle, uint32_t packetMark, StatusCode status); 497e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland 507e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland /** 517e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * Destroys the specified network previously created using createOemNetwork() 527e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * 537e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland * @return status operation status 547e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland */ 557e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland @exit 567e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland @callflow(next="createOemNetwork") 577e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland destroyOemNetwork(uint64_t networkHandle) generates (StatusCode status); 587e3a96d729324687c4f009c3a6ec75ef023eaad5Steven Moreland}; 59