OffloadUtils - Introduce 'RAWIP' and 'ETHER' helper constants.
Makes things a tad easier to read.
Test: build, atest
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib556d10d15bd5a3c901f20cb9f28644574a58ce4
diff --git a/server/ClatdController.cpp b/server/ClatdController.cpp
index 294e55b..7e697b7 100644
--- a/server/ClatdController.cpp
+++ b/server/ClatdController.cpp
@@ -279,9 +279,9 @@
}
// This program will be attached to the v4-* interface which is a TUN and thus always rawip.
- rv = getClatEgressProgFd(false);
+ rv = getClatEgressProgFd(RAWIP);
if (rv < 0) {
- ALOGE("getClatEgressProgFd(false) failure: %s", strerror(-rv));
+ ALOGE("getClatEgressProgFd(RAWIP) failure: %s", strerror(-rv));
return;
}
unique_fd txRawIpProgFd(rv);
@@ -364,13 +364,13 @@
return;
}
- rv = tcFilterAddDevEgressBpf(tracker.v4ifIndex, txRawIpProgFd, false);
+ rv = tcFilterAddDevEgressBpf(tracker.v4ifIndex, txRawIpProgFd, RAWIP);
if (rv) {
if ((rv == -ENOENT) && (mClatEbpfMode == ClatEbpfMaybe)) {
- ALOGI("tcFilterAddDevEgressBpf(%d[%s], false): %s", tracker.v4ifIndex, tracker.v4iface,
+ ALOGI("tcFilterAddDevEgressBpf(%d[%s], RAWIP): %s", tracker.v4ifIndex, tracker.v4iface,
strerror(-rv));
} else {
- ALOGE("tcFilterAddDevEgressBpf(%d[%s], false) failure: %s", tracker.v4ifIndex,
+ ALOGE("tcFilterAddDevEgressBpf(%d[%s], RAWIP) failure: %s", tracker.v4ifIndex,
tracker.v4iface, strerror(-rv));
}
rv = tcQdiscDelDevClsact(tracker.ifIndex);
diff --git a/server/OffloadUtils.h b/server/OffloadUtils.h
index 9aa4d38..1705e84 100644
--- a/server/OffloadUtils.h
+++ b/server/OffloadUtils.h
@@ -28,8 +28,14 @@
namespace android {
namespace net {
+// this returns an ARPHRD_* constant or a -errno
int hardwareAddressType(const std::string& interface);
+// For better code clarity - do not change values - used for booleans like
+// with_ethernet_header or isEthernet.
+constexpr bool RAWIP = false;
+constexpr bool ETHER = true;
+
inline int getClatEgressMapFd(void) {
const int fd = bpf::bpfFdGet(CLAT_EGRESS_MAP_PATH, 0);
return (fd == -1) ? -errno : fd;
diff --git a/server/OffloadUtilsTest.cpp b/server/OffloadUtilsTest.cpp
index 6566f3b..6bfe52c 100644
--- a/server/OffloadUtilsTest.cpp
+++ b/server/OffloadUtilsTest.cpp
@@ -76,7 +76,7 @@
TEST_F(OffloadUtilsTest, GetClatEgressRawIpProgFd) {
SKIP_IF_BPF_NOT_SUPPORTED;
- int fd = getClatEgressProgFd(false);
+ int fd = getClatEgressProgFd(RAWIP);
ASSERT_LE(3, fd);
close(fd);
}
@@ -84,7 +84,7 @@
TEST_F(OffloadUtilsTest, GetClatEgressEtherProgFd) {
SKIP_IF_BPF_NOT_SUPPORTED;
- int fd = getClatEgressProgFd(true);
+ int fd = getClatEgressProgFd(ETHER);
ASSERT_LE(3, fd);
close(fd);
}
@@ -100,7 +100,7 @@
TEST_F(OffloadUtilsTest, GetClatIngressRawIpProgFd) {
SKIP_IF_BPF_NOT_SUPPORTED;
- int fd = getClatIngressProgFd(false);
+ int fd = getClatIngressProgFd(RAWIP);
ASSERT_LE(3, fd);
close(fd);
}
@@ -108,7 +108,7 @@
TEST_F(OffloadUtilsTest, GetClatIngressEtherProgFd) {
SKIP_IF_BPF_NOT_SUPPORTED;
- int fd = getClatIngressProgFd(true);
+ int fd = getClatIngressProgFd(ETHER);
ASSERT_LE(3, fd);
close(fd);
}
@@ -126,7 +126,7 @@
// RX Rawip -> TX Ether requires header adjustments and thus 4.14.
SKIP_IF_EXTENDED_BPF_NOT_SUPPORTED;
- int fd = getTetherIngressProgFd(false);
+ int fd = getTetherIngressProgFd(RAWIP);
ASSERT_LE(3, fd);
close(fd);
}
@@ -136,7 +136,7 @@
// RX Ether -> TX Ether does not require header adjustments
SKIP_IF_BPF_NOT_SUPPORTED;
- int fd = getTetherIngressProgFd(true);
+ int fd = getTetherIngressProgFd(ETHER);
ASSERT_LE(3, fd);
close(fd);
}
@@ -247,19 +247,19 @@
}
TEST_F(OffloadUtilsTest, CheckAttachBpfFilterRawIpClsactEgressLo) {
- checkAttachDetachBpfFilterClsactLo(/*ingress*/ false, /*ethernet*/ false);
+ checkAttachDetachBpfFilterClsactLo(/*ingress*/ false, RAWIP);
}
TEST_F(OffloadUtilsTest, CheckAttachBpfFilterEthernetClsactEgressLo) {
- checkAttachDetachBpfFilterClsactLo(/*ingress*/ false, /*ethernet*/ true);
+ checkAttachDetachBpfFilterClsactLo(/*ingress*/ false, ETHER);
}
TEST_F(OffloadUtilsTest, CheckAttachBpfFilterRawIpClsactIngressLo) {
- checkAttachDetachBpfFilterClsactLo(/*ingress*/ true, /*ethernet*/ false);
+ checkAttachDetachBpfFilterClsactLo(/*ingress*/ true, RAWIP);
}
TEST_F(OffloadUtilsTest, CheckAttachBpfFilterEthernetClsactIngressLo) {
- checkAttachDetachBpfFilterClsactLo(/*ingress*/ true, /*ethernet*/ true);
+ checkAttachDetachBpfFilterClsactLo(/*ingress*/ true, ETHER);
}
} // namespace net