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",