Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c4ed9de authored by KH Shi's avatar KH Shi
Browse files

Convert Tetheroffload HIDL to AIDL.

This patch converts Tetheroffload HIDL to AIDL and adds an empty
example implementation.
There are some changes in AIDL HAL:
1. Combine IOffloadConfig and IOffloadControl into IOffload
2. Use AIDL builtin errors exception code with message as return

Bug: b/205762647
Test: m android.hardware.tetheroffload-update-api
      m android.hardware.tetheroffload-V1-ndk
      m android.hardware.tetheroffload-service.example
      atest VtsHalTetheroffloadTargetTest
Change-Id: I9859ff3df608c058786b4e2b91cb6cd5f38e653a
(cherry picked from commit d97a3086)
Merged-In: I9859ff3df608c058786b4e2b91cb6cd5f38e653a
parent 4ec6ff09
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -686,6 +686,14 @@
            <instance>default</instance>
            <instance>default</instance>
        </interface>
        </interface>
    </hal>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tetheroffload</name>
        <version>1</version>
        <interface>
            <name>IOffload</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="false">
    <hal format="hidl" optional="false">
        <name>android.hardware.thermal</name>
        <name>android.hardware.thermal</name>
        <version>2.0</version>
        <version>2.0</version>
+27 −0
Original line number Original line Diff line number Diff line
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

aidl_interface {
    name: "android.hardware.tetheroffload",
    vendor_available: true,
    srcs: ["android/hardware/tetheroffload/*.aidl"],
    stability: "vintf",
    backend: {
        cpp: {
            enabled: false,
        },
        java: {
            sdk_version: "module_current",
            apex_available: [
                "com.android.tethering",
            ],
            min_sdk_version: "30",
            enabled: true,
        },
        ndk: {
            apps_enabled: false,
        },
    },
    frozen: false,
}
+39 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.tetheroffload;
@VintfStability
parcelable ForwardedStats {
  long rxBytes;
  long txBytes;
}
+46 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.tetheroffload;
@VintfStability
interface IOffload {
  void initOffload(in ParcelFileDescriptor fd1, in ParcelFileDescriptor fd2, in android.hardware.tetheroffload.ITetheringOffloadCallback cb);
  void stopOffload();
  void setLocalPrefixes(in String[] prefixes);
  android.hardware.tetheroffload.ForwardedStats getForwardedStats(in String upstream);
  void setDataWarningAndLimit(in String upstream, in long warningBytes, in long limitBytes);
  void setUpstreamParameters(in String iface, in String v4Addr, in String v4Gw, in String[] v6Gws);
  void addDownstream(in String iface, in String prefix);
  void removeDownstream(in String iface, in String prefix);
  const int ERROR_CODE_UNUSED = 0;
}
+39 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.tetheroffload;
@VintfStability
parcelable IPv4AddrPortPair {
  String addr;
  int port;
}
Loading