merge Tether{Down,Up}stream4{Key,Value} - part 2 - java

Generated via:
  git grep 'Tether(Down|Up)stream4(Key|Value)' | cut -d: -f1 | sort -u | while read i; do
    sed -r -i 's@TetherUpstream4Value@Tether4Value@g' "$i"
    sed -r -i 's@TetherDownstream4Value@Tether4Value@g' "$i"
    sed -r -i 's@TetherDownstream4Key@Tether4Key@g' "$i"
    sed -r -i 's@TetherUpstream4Key@Tether4Key@g' "$i"
  done

  cd Tethering/src/com/android/networkstack/tethering
  git mv TetherUpstream4Key.java Tether4Key.java
  git mv TetherUpstream4Value.java Tether4Value.java

  git diff TetherDownstream4Key.java Tether4Key.java
  git diff TetherDownstream4Value.java Tether4Value.java
  git rm TetherDownstream4Key.java
  git rm TetherDownstream4Value.java

Fixup resulting 'import' duplication
  mcedit Tethering/apishim/31/com/android/networkstack/tethering/apishim/api31/BpfCoordinatorShimImpl.java
  mcedit Tethering/apishim/30/com/android/networkstack/tethering/apishim/api30/BpfCoordinatorShimImpl.java
  mcedit Tethering/apishim/common/com/android/networkstack/tethering/apishim/common/BpfCoordinatorShim.java
  mcedit Tethering/tests/unit/src/android/net/ip/IpServerTest.java

Test: N/A, requires follow up commit
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1dfc3108ca4bbd0cefc3420bc7e421594b62619c
This commit is contained in:
Maciej Żenczykowski 2021-01-25 18:06:34 -08:00
commit 32874eb6bc
10 changed files with 56 additions and 240 deletions

View file

@ -28,11 +28,9 @@ import androidx.annotation.Nullable;
import com.android.networkstack.tethering.BpfCoordinator.Dependencies;
import com.android.networkstack.tethering.BpfCoordinator.Ipv6ForwardingRule;
import com.android.networkstack.tethering.TetherDownstream4Key;
import com.android.networkstack.tethering.TetherDownstream4Value;
import com.android.networkstack.tethering.Tether4Key;
import com.android.networkstack.tethering.Tether4Value;
import com.android.networkstack.tethering.TetherStatsValue;
import com.android.networkstack.tethering.TetherUpstream4Key;
import com.android.networkstack.tethering.TetherUpstream4Value;
/**
* Bpf coordinator class for API shims.
@ -136,27 +134,27 @@ public class BpfCoordinatorShimImpl
}
@Override
public boolean tetherOffloadRuleAdd(@NonNull TetherDownstream4Key key,
@NonNull TetherDownstream4Value value) {
public boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value) {
/* no op */
return true;
}
@Override
public boolean tetherOffloadRuleRemove(@NonNull TetherDownstream4Key key) {
public boolean tetherOffloadRuleRemove(@NonNull Tether4Key key) {
/* no op */
return true;
}
@Override
public boolean tetherOffloadRuleAdd(@NonNull TetherUpstream4Key key,
@NonNull TetherUpstream4Value value) {
public boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value) {
/* no op */
return true;
}
@Override
public boolean tetherOffloadRuleRemove(@NonNull TetherUpstream4Key key) {
public boolean tetherOffloadRuleRemove(@NonNull Tether4Key key) {
/* no op */
return true;
}

View file

@ -30,16 +30,14 @@ import androidx.annotation.Nullable;
import com.android.networkstack.tethering.BpfCoordinator.Dependencies;
import com.android.networkstack.tethering.BpfCoordinator.Ipv6ForwardingRule;
import com.android.networkstack.tethering.BpfMap;
import com.android.networkstack.tethering.TetherDownstream4Key;
import com.android.networkstack.tethering.TetherDownstream4Value;
import com.android.networkstack.tethering.Tether4Key;
import com.android.networkstack.tethering.Tether4Value;
import com.android.networkstack.tethering.TetherDownstream6Key;
import com.android.networkstack.tethering.TetherDownstream6Value;
import com.android.networkstack.tethering.TetherLimitKey;
import com.android.networkstack.tethering.TetherLimitValue;
import com.android.networkstack.tethering.TetherStatsKey;
import com.android.networkstack.tethering.TetherStatsValue;
import com.android.networkstack.tethering.TetherUpstream4Key;
import com.android.networkstack.tethering.TetherUpstream4Value;
import java.io.FileDescriptor;
@ -61,12 +59,12 @@ public class BpfCoordinatorShimImpl
// BPF map of ingress queueing discipline which pre-processes the packets by the IPv4
// downstream rules.
@Nullable
private final BpfMap<TetherDownstream4Key, TetherDownstream4Value> mBpfDownstream4Map;
private final BpfMap<Tether4Key, Tether4Value> mBpfDownstream4Map;
// BPF map of ingress queueing discipline which pre-processes the packets by the IPv4
// upstream rules.
@Nullable
private final BpfMap<TetherUpstream4Key, TetherUpstream4Value> mBpfUpstream4Map;
private final BpfMap<Tether4Key, Tether4Value> mBpfUpstream4Map;
// BPF map of ingress queueing discipline which pre-processes the packets by the IPv6
// forwarding rules.
@ -250,8 +248,8 @@ public class BpfCoordinatorShimImpl
}
@Override
public boolean tetherOffloadRuleAdd(@NonNull TetherDownstream4Key key,
@NonNull TetherDownstream4Value value) {
public boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value) {
if (!isInitialized()) return false;
try {
@ -268,7 +266,7 @@ public class BpfCoordinatorShimImpl
}
@Override
public boolean tetherOffloadRuleRemove(@NonNull TetherDownstream4Key key) {
public boolean tetherOffloadRuleRemove(@NonNull Tether4Key key) {
if (!isInitialized()) return false;
try {
@ -284,8 +282,8 @@ public class BpfCoordinatorShimImpl
}
@Override
public boolean tetherOffloadRuleAdd(@NonNull TetherUpstream4Key key,
@NonNull TetherUpstream4Value value) {
public boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value) {
if (!isInitialized()) return false;
try {
@ -302,7 +300,7 @@ public class BpfCoordinatorShimImpl
}
@Override
public boolean tetherOffloadRuleRemove(@NonNull TetherUpstream4Key key) {
public boolean tetherOffloadRuleRemove(@NonNull Tether4Key key) {
if (!isInitialized()) return false;
try {

View file

@ -23,11 +23,9 @@ import androidx.annotation.Nullable;
import com.android.networkstack.tethering.BpfCoordinator.Dependencies;
import com.android.networkstack.tethering.BpfCoordinator.Ipv6ForwardingRule;
import com.android.networkstack.tethering.TetherDownstream4Key;
import com.android.networkstack.tethering.TetherDownstream4Value;
import com.android.networkstack.tethering.Tether4Key;
import com.android.networkstack.tethering.Tether4Value;
import com.android.networkstack.tethering.TetherStatsValue;
import com.android.networkstack.tethering.TetherUpstream4Key;
import com.android.networkstack.tethering.TetherUpstream4Value;
/**
* Bpf coordinator class for API shims.
@ -116,23 +114,23 @@ public abstract class BpfCoordinatorShim {
/**
* Adds a tethering IPv4 downstream offload rule to BPF map.
*/
public abstract boolean tetherOffloadRuleAdd(@NonNull TetherDownstream4Key key,
@NonNull TetherDownstream4Value value);
public abstract boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value);
/**
* Deletes a tethering IPv4 downstream offload rule from the BPF map.
*/
public abstract boolean tetherOffloadRuleRemove(@NonNull TetherDownstream4Key key);
public abstract boolean tetherOffloadRuleRemove(@NonNull Tether4Key key);
/**
* Adds a tethering IPv4 upstream offload rule to BPF map.
*/
public abstract boolean tetherOffloadRuleAdd(@NonNull TetherUpstream4Key key,
@NonNull TetherUpstream4Value value);
public abstract boolean tetherOffloadRuleAdd(@NonNull Tether4Key key,
@NonNull Tether4Value value);
/**
* Deletes a tethering IPv4 upstream offload rule from the BPF map.
*/
public abstract boolean tetherOffloadRuleRemove(@NonNull TetherUpstream4Key key);
public abstract boolean tetherOffloadRuleRemove(@NonNull Tether4Key key);
}

View file

@ -237,11 +237,11 @@ public class BpfCoordinator {
}
/** Get downstream4 BPF map. */
@Nullable public BpfMap<TetherDownstream4Key, TetherDownstream4Value>
@Nullable public BpfMap<Tether4Key, Tether4Value>
getBpfDownstream4Map() {
try {
return new BpfMap<>(TETHER_DOWNSTREAM4_MAP_PATH,
BpfMap.BPF_F_RDWR, TetherDownstream4Key.class, TetherDownstream4Value.class);
BpfMap.BPF_F_RDWR, Tether4Key.class, Tether4Value.class);
} catch (ErrnoException e) {
Log.e(TAG, "Cannot create downstream4 map: " + e);
return null;
@ -249,11 +249,11 @@ public class BpfCoordinator {
}
/** Get upstream4 BPF map. */
@Nullable public BpfMap<TetherUpstream4Key, TetherUpstream4Value>
@Nullable public BpfMap<Tether4Key, Tether4Value>
getBpfUpstream4Map() {
try {
return new BpfMap<>(TETHER_UPSTREAM4_MAP_PATH,
BpfMap.BPF_F_RDWR, TetherUpstream4Key.class, TetherUpstream4Value.class);
BpfMap.BPF_F_RDWR, Tether4Key.class, Tether4Value.class);
} catch (ErrnoException e) {
Log.e(TAG, "Cannot create upstream4 map: " + e);
return null;
@ -906,25 +906,25 @@ public class BpfCoordinator {
// TODO: add ether ip support.
private class BpfConntrackEventConsumer implements ConntrackEventConsumer {
@NonNull
private TetherUpstream4Key makeTetherUpstream4Key(
private Tether4Key makeTether4Key(
@NonNull ConntrackEvent e, @NonNull ClientInfo c) {
return new TetherUpstream4Key(c.downstreamIfindex, c.downstreamMac,
return new Tether4Key(c.downstreamIfindex, c.downstreamMac,
e.tupleOrig.protoNum, e.tupleOrig.srcIp.getAddress(),
e.tupleOrig.dstIp.getAddress(), e.tupleOrig.srcPort, e.tupleOrig.dstPort);
}
@NonNull
private TetherDownstream4Key makeTetherDownstream4Key(
private Tether4Key makeTether4Key(
@NonNull ConntrackEvent e, @NonNull ClientInfo c, int upstreamIndex) {
return new TetherDownstream4Key(upstreamIndex, NULL_MAC_ADDRESS /* dstMac (rawip) */,
return new Tether4Key(upstreamIndex, NULL_MAC_ADDRESS /* dstMac (rawip) */,
e.tupleReply.protoNum, e.tupleReply.srcIp.getAddress(),
e.tupleReply.dstIp.getAddress(), e.tupleReply.srcPort, e.tupleReply.dstPort);
}
@NonNull
private TetherUpstream4Value makeTetherUpstream4Value(@NonNull ConntrackEvent e,
private Tether4Value makeTether4Value(@NonNull ConntrackEvent e,
int upstreamIndex) {
return new TetherUpstream4Value(upstreamIndex,
return new Tether4Value(upstreamIndex,
NULL_MAC_ADDRESS /* ethDstMac (rawip) */,
NULL_MAC_ADDRESS /* ethSrcMac (rawip) */, ETH_P_IP,
NetworkStackConstants.ETHER_MTU, toIpv4MappedAddressBytes(e.tupleReply.dstIp),
@ -933,9 +933,9 @@ public class BpfCoordinator {
}
@NonNull
private TetherDownstream4Value makeTetherDownstream4Value(@NonNull ConntrackEvent e,
private Tether4Value makeTether4Value(@NonNull ConntrackEvent e,
@NonNull ClientInfo c, int upstreamIndex) {
return new TetherDownstream4Value(c.downstreamIfindex,
return new Tether4Value(c.downstreamIfindex,
c.clientMac, c.downstreamMac, ETH_P_IP, NetworkStackConstants.ETHER_MTU,
e.tupleOrig.dstIp.getAddress(), e.tupleOrig.srcIp.getAddress(),
e.tupleOrig.dstPort, e.tupleOrig.srcPort,
@ -962,8 +962,8 @@ public class BpfCoordinator {
final Integer upstreamIndex = mIpv4UpstreamIndices.get(e.tupleReply.dstIp);
if (upstreamIndex == null) return;
final TetherUpstream4Key upstream4Key = makeTetherUpstream4Key(e, tetherClient);
final TetherDownstream4Key downstream4Key = makeTetherDownstream4Key(e,
final Tether4Key upstream4Key = makeTether4Key(e, tetherClient);
final Tether4Key downstream4Key = makeTether4Key(e,
tetherClient, upstreamIndex);
if (e.msgType == (NetlinkConstants.NFNL_SUBSYS_CTNETLINK << 8
@ -973,9 +973,9 @@ public class BpfCoordinator {
return;
}
final TetherUpstream4Value upstream4Value = makeTetherUpstream4Value(e,
final Tether4Value upstream4Value = makeTether4Value(e,
upstreamIndex);
final TetherDownstream4Value downstream4Value = makeTetherDownstream4Value(e,
final Tether4Value downstream4Value = makeTether4Value(e,
tetherClient, upstreamIndex);
mBpfCoordinatorShim.tetherOffloadRuleAdd(upstream4Key, upstream4Value);

View file

@ -18,6 +18,8 @@ package com.android.networkstack.tethering;
import android.net.MacAddress;
import androidx.annotation.NonNull;
import com.android.net.module.util.Struct;
import com.android.net.module.util.Struct.Field;
import com.android.net.module.util.Struct.Type;
@ -27,7 +29,7 @@ import java.net.UnknownHostException;
import java.util.Objects;
/** The key of BpfMap which is used for IPv4 bpf offload. */
public class TetherDownstream4Key extends Struct {
public class Tether4Key extends Struct {
@Field(order = 0, type = Type.U32)
public final long iif;
@ -49,7 +51,7 @@ public class TetherDownstream4Key extends Struct {
@Field(order = 6, type = Type.UBE16)
public final int dstPort;
public TetherDownstream4Key(final long iif, final MacAddress dstMac, final short l4proto,
public Tether4Key(final long iif, @NonNull final MacAddress dstMac, final short l4proto,
final byte[] src4, final byte[] dst4, final int srcPort,
final int dstPort) {
Objects.requireNonNull(dstMac);

View file

@ -29,7 +29,7 @@ import java.net.UnknownHostException;
import java.util.Objects;
/** The value of BpfMap which is used for IPv4 bpf offload. */
public class TetherDownstream4Value extends Struct {
public class Tether4Value extends Struct {
@Field(order = 0, type = Type.U32)
public final long oif;
@ -44,11 +44,11 @@ public class TetherDownstream4Value extends Struct {
@Field(order = 4, type = Type.U16)
public final int pmtu;
@Field(order = 5, type = Type.ByteArray, arraysize = 4)
public final byte[] src4;
@Field(order = 5, type = Type.ByteArray, arraysize = 16)
public final byte[] src46;
@Field(order = 6, type = Type.ByteArray, arraysize = 4)
public final byte[] dst4;
@Field(order = 6, type = Type.ByteArray, arraysize = 16)
public final byte[] dst46;
@Field(order = 7, type = Type.UBE16)
public final int srcPort;
@ -60,9 +60,9 @@ public class TetherDownstream4Value extends Struct {
@Field(order = 9, type = Type.U63)
public final long lastUsed;
public TetherDownstream4Value(final long oif, @NonNull final MacAddress ethDstMac,
public Tether4Value(final long oif, @NonNull final MacAddress ethDstMac,
@NonNull final MacAddress ethSrcMac, final int ethProto, final int pmtu,
final byte[] src4, final byte[] dst4, final int srcPort,
final byte[] src46, final byte[] dst46, final int srcPort,
final int dstPort, final long lastUsed) {
Objects.requireNonNull(ethDstMac);
Objects.requireNonNull(ethSrcMac);
@ -72,8 +72,8 @@ public class TetherDownstream4Value extends Struct {
this.ethSrcMac = ethSrcMac;
this.ethProto = ethProto;
this.pmtu = pmtu;
this.src4 = src4;
this.dst4 = dst4;
this.src46 = src46;
this.dst46 = dst46;
this.srcPort = srcPort;
this.dstPort = dstPort;
this.lastUsed = lastUsed;
@ -84,10 +84,10 @@ public class TetherDownstream4Value extends Struct {
try {
return String.format(
"oif: %d, ethDstMac: %s, ethSrcMac: %s, ethProto: %d, pmtu: %d, "
+ "src4: %s, dst4: %s, srcPort: %d, dstPort: %d, "
+ "src46: %s, dst46: %s, srcPort: %d, dstPort: %d, "
+ "lastUsed: %d",
oif, ethDstMac, ethSrcMac, ethProto, pmtu,
InetAddress.getByAddress(src4), InetAddress.getByAddress(dst4),
InetAddress.getByAddress(src46), InetAddress.getByAddress(dst46),
Short.toUnsignedInt((short) srcPort), Short.toUnsignedInt((short) dstPort),
lastUsed);
} catch (UnknownHostException | IllegalArgumentException e) {

View file

@ -104,16 +104,14 @@ import com.android.networkstack.tethering.BpfCoordinator;
import com.android.networkstack.tethering.BpfCoordinator.Ipv6ForwardingRule;
import com.android.networkstack.tethering.BpfMap;
import com.android.networkstack.tethering.PrivateAddressCoordinator;
import com.android.networkstack.tethering.TetherDownstream4Key;
import com.android.networkstack.tethering.TetherDownstream4Value;
import com.android.networkstack.tethering.Tether4Key;
import com.android.networkstack.tethering.Tether4Value;
import com.android.networkstack.tethering.TetherDownstream6Key;
import com.android.networkstack.tethering.TetherDownstream6Value;
import com.android.networkstack.tethering.TetherLimitKey;
import com.android.networkstack.tethering.TetherLimitValue;
import com.android.networkstack.tethering.TetherStatsKey;
import com.android.networkstack.tethering.TetherStatsValue;
import com.android.networkstack.tethering.TetherUpstream4Key;
import com.android.networkstack.tethering.TetherUpstream4Value;
import com.android.networkstack.tethering.TetheringConfiguration;
import com.android.testutils.DevSdkIgnoreRule;
import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter;
@ -177,8 +175,8 @@ public class IpServerTest {
@Mock private NetworkStatsManager mStatsManager;
@Mock private TetheringConfiguration mTetherConfig;
@Mock private ConntrackMonitor mConntrackMonitor;
@Mock private BpfMap<TetherDownstream4Key, TetherDownstream4Value> mBpfDownstream4Map;
@Mock private BpfMap<TetherUpstream4Key, TetherUpstream4Value> mBpfUpstream4Map;
@Mock private BpfMap<Tether4Key, Tether4Value> mBpfDownstream4Map;
@Mock private BpfMap<Tether4Key, Tether4Value> mBpfUpstream4Map;
@Mock private BpfMap<TetherDownstream6Key, TetherDownstream6Value> mBpfDownstream6Map;
@Mock private BpfMap<TetherStatsKey, TetherStatsValue> mBpfStatsMap;
@Mock private BpfMap<TetherLimitKey, TetherLimitValue> mBpfLimitMap;
@ -309,13 +307,13 @@ public class IpServerTest {
}
@Nullable
public BpfMap<TetherDownstream4Key, TetherDownstream4Value>
public BpfMap<Tether4Key, Tether4Value>
getBpfDownstream4Map() {
return mBpfDownstream4Map;
}
@Nullable
public BpfMap<TetherUpstream4Key, TetherUpstream4Value>
public BpfMap<Tether4Key, Tether4Value>
getBpfUpstream4Map() {
return mBpfUpstream4Map;
}

View file

@ -158,8 +158,8 @@ public class BpfCoordinatorTest {
@Mock private IpServer mIpServer2;
@Mock private TetheringConfiguration mTetherConfig;
@Mock private ConntrackMonitor mConntrackMonitor;
@Mock private BpfMap<TetherDownstream4Key, TetherDownstream4Value> mBpfDownstream4Map;
@Mock private BpfMap<TetherUpstream4Key, TetherUpstream4Value> mBpfUpstream4Map;
@Mock private BpfMap<Tether4Key, Tether4Value> mBpfDownstream4Map;
@Mock private BpfMap<Tether4Key, Tether4Value> mBpfUpstream4Map;
@Mock private BpfMap<TetherDownstream6Key, TetherDownstream6Value> mBpfDownstream6Map;
// Late init since methods must be called by the thread that created this object.
@ -205,13 +205,13 @@ public class BpfCoordinatorTest {
}
@Nullable
public BpfMap<TetherDownstream4Key, TetherDownstream4Value>
public BpfMap<Tether4Key, Tether4Value>
getBpfDownstream4Map() {
return mBpfDownstream4Map;
}
@Nullable
public BpfMap<TetherUpstream4Key, TetherUpstream4Value>
public BpfMap<Tether4Key, Tether4Value>
getBpfUpstream4Map() {
return mBpfUpstream4Map;
}