patchpanel: Move wwan masquerade from script
BUG=b:156200410
TEST=units
Change-Id: I7397b98c1cbed74eea0debaff1ad2c918e7be318
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2214844
Tested-by: Garrick Evans <garrick@chromium.org>
Commit-Queue: Garrick Evans <garrick@chromium.org>
Reviewed-by: Hugo Benichi <hugobenichi@google.com>
diff --git a/patchpanel/datapath.cc b/patchpanel/datapath.cc
index 80faf15..aadd1df 100644
--- a/patchpanel/datapath.cc
+++ b/patchpanel/datapath.cc
@@ -446,6 +446,16 @@
"1", "-j", "ACCEPT", "-w"});
}
+bool Datapath::AddInterfaceSNAT(const std::string& ifname) {
+ return process_runner_->iptables("nat", {"-A", "POSTROUTING", "-o", ifname,
+ "-j", "MASQUERADE", "-w"}) == 0;
+}
+
+void Datapath::RemoveInterfaceSNAT(const std::string& ifname) {
+ process_runner_->iptables(
+ "nat", {"-D", "POSTROUTING", "-o", ifname, "-j", "MASQUERADE", "-w"});
+}
+
bool Datapath::AddOutboundIPv4SNATMark(const std::string& ifname) {
return process_runner_->iptables(
"mangle", {"-A", "PREROUTING", "-i", ifname, "-j", "MARK",