use/test pmtu from TetherOffloadRuleParcel
Tested: atest
Bug: 149816401
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Original-Change: https://android-review.googlesource.com/1316720
Merged-In: Id8a91ed5c0176b41c079ede5533af90b8756de6b
Change-Id: Id8a91ed5c0176b41c079ede5533af90b8756de6b
diff --git a/server/TetherController.cpp b/server/TetherController.cpp
index 6b5b060..ad6e8a9 100644
--- a/server/TetherController.cpp
+++ b/server/TetherController.cpp
@@ -844,6 +844,9 @@
if (rule.dstL2Address.size() != sizeof(hdr.h_dest)) {
return Error(ENXIO) << "Invalid L2 dst address length " << rule.dstL2Address.size();
}
+ if (rule.pmtu < IPV6_MIN_MTU || rule.pmtu > 0xFFFF) {
+ return Error(EINVAL) << "Invalid IPv6 path mtu " << rule.pmtu;
+ }
return Result<void>();
}
} // namespace
@@ -867,7 +870,7 @@
TetherIngressValue value = {
.oif = static_cast<uint32_t>(rule.outputInterfaceIndex),
.macHeader = hdr,
- .pmtu = 1500, // TODO: don't just blindly use this default
+ .pmtu = static_cast<uint16_t>(rule.pmtu),
};
return mBpfIngressMap.writeValue(key, value, BPF_ANY);