blob: f972ab9d2edcbd787bdddfff3f431228d7b3c041 [file] [log] [blame]
Nathan Haroldd2a1dad2017-03-01 18:55:06 -08001/*
2** Copyright 2017, The Android Open Source Project
3**
4** Licensed under the Apache License, Version 2.0 (the "License");
5** you may not use this file except in compliance with the License.
6** You may obtain a copy of the License at
7**
8** http://www.apache.org/licenses/LICENSE-2.0
9**
10** Unless required by applicable law or agreed to in writing, software
11** distributed under the License is distributed on an "AS IS" BASIS,
12** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13** See the License for the specific language governing permissions and
14** limitations under the License.
15*/
16
17package android.net;
18
Benedict Wongc53a2742018-03-01 18:53:07 -080019import android.net.LinkAddress;
Nathan Harold031acb82017-03-07 13:23:36 -080020import android.net.Network;
21import android.net.IpSecConfig;
Nathan Harold80865392017-04-04 19:37:48 -070022import android.net.IpSecUdpEncapResponse;
23import android.net.IpSecSpiResponse;
24import android.net.IpSecTransformResponse;
Yan Yanab5006c2023-11-15 21:41:51 +000025import android.net.IpSecTransformState;
Benedict Wong79d01182018-01-18 18:31:45 -080026import android.net.IpSecTunnelInterfaceResponse;
Nathan Harold031acb82017-03-07 13:23:36 -080027import android.os.Bundle;
28import android.os.IBinder;
29import android.os.ParcelFileDescriptor;
30
Nathan Haroldd2a1dad2017-03-01 18:55:06 -080031/**
32 * @hide
33 */
34interface IIpSecService
35{
Jonathan Basserif33f4842017-11-16 10:58:01 -080036 IpSecSpiResponse allocateSecurityParameterIndex(
Nathan Haroldce6d5732018-01-05 19:25:13 -080037 in String destinationAddress, int requestedSpi, in IBinder binder);
Nathan Harold031acb82017-03-07 13:23:36 -080038
39 void releaseSecurityParameterIndex(int resourceId);
40
Nathan Harold80865392017-04-04 19:37:48 -070041 IpSecUdpEncapResponse openUdpEncapsulationSocket(int port, in IBinder binder);
Nathan Harold031acb82017-03-07 13:23:36 -080042
Nathan Harold80865392017-04-04 19:37:48 -070043 void closeUdpEncapsulationSocket(int resourceId);
Nathan Harold031acb82017-03-07 13:23:36 -080044
Benedict Wong79d01182018-01-18 18:31:45 -080045 IpSecTunnelInterfaceResponse createTunnelInterface(
46 in String localAddr,
47 in String remoteAddr,
48 in Network underlyingNetwork,
Nathan Harolda10a7f92018-03-15 18:06:06 -070049 in IBinder binder,
50 in String callingPackage);
Benedict Wong79d01182018-01-18 18:31:45 -080051
52 void addAddressToTunnelInterface(
53 int tunnelResourceId,
Nathan Harolda10a7f92018-03-15 18:06:06 -070054 in LinkAddress localAddr,
55 in String callingPackage);
Benedict Wong79d01182018-01-18 18:31:45 -080056
57 void removeAddressFromTunnelInterface(
58 int tunnelResourceId,
Nathan Harolda10a7f92018-03-15 18:06:06 -070059 in LinkAddress localAddr,
60 in String callingPackage);
Benedict Wong79d01182018-01-18 18:31:45 -080061
Yan Yan0f904192020-09-29 23:38:00 -070062 void setNetworkForTunnelInterface(
63 int tunnelResourceId, in Network underlyingNetwork, in String callingPackage);
64
Nathan Harolda10a7f92018-03-15 18:06:06 -070065 void deleteTunnelInterface(int resourceId, in String callingPackage);
Benedict Wong79d01182018-01-18 18:31:45 -080066
Nathan Harolda10a7f92018-03-15 18:06:06 -070067 IpSecTransformResponse createTransform(
68 in IpSecConfig c, in IBinder binder, in String callingPackage);
Nathan Harold031acb82017-03-07 13:23:36 -080069
Yan Yane114b382021-02-16 16:29:48 -080070 void migrateTransform(
71 int transformId,
72 in String newSourceAddress,
73 in String newDestinationAddress,
74 in String callingPackage);
75
Benedict Wong77df1d32018-01-18 14:38:16 -080076 void deleteTransform(int transformId);
Nathan Harold031acb82017-03-07 13:23:36 -080077
Yan Yanab5006c2023-11-15 21:41:51 +000078 IpSecTransformState getTransformState(int transformId);
79
Nathan Harolda10a7f92018-03-15 18:06:06 -070080 void applyTransportModeTransform(
81 in ParcelFileDescriptor socket, int direction, int transformId);
Nathan Harold031acb82017-03-07 13:23:36 -080082
Nathan Harolda10a7f92018-03-15 18:06:06 -070083 void applyTunnelModeTransform(
84 int tunnelResourceId, int direction, int transformResourceId, in String callingPackage);
Benedict Wong79d01182018-01-18 18:31:45 -080085
Nathan Harold24f3bb82018-01-17 01:00:20 -080086 void removeTransportModeTransforms(in ParcelFileDescriptor socket);
Nathan Haroldd2a1dad2017-03-01 18:55:06 -080087}