diff options
| author | Maciej Żenczykowski <maze@google.com> | 2020-05-23 16:10:31 -0700 |
|---|---|---|
| committer | Maciej Żenczykowski <maze@google.com> | 2020-06-01 00:14:07 +0000 |
| commit | 2cc40849e8dbfa9d99b6dac5e352726e2128cf1f (patch) | |
| tree | 4b0a5831dce3412fa19805bb9f557ca0cd9d4d66 /server/TetherController.cpp | |
| parent | 7c7fef4af47eb46836caa9faf90aada2db7abece (diff) | |
use/test pmtu from TetherOffloadRuleParcel
Tested: atest
Bug: 149816401
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Id8a91ed5c0176b41c079ede5533af90b8756de6b
Diffstat (limited to 'server/TetherController.cpp')
| -rw-r--r-- | server/TetherController.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/server/TetherController.cpp b/server/TetherController.cpp index 50ae9661..6dfb041a 100644 --- a/server/TetherController.cpp +++ b/server/TetherController.cpp @@ -849,6 +849,9 @@ Result<void> validateOffloadRule(const TetherOffloadRuleParcel& rule) { 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 @@ -872,7 +875,7 @@ Result<void> TetherController::addOffloadRule(const TetherOffloadRuleParcel& rul 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); |
