Refactor outgoing routing into its own test.

Change-Id: I74dbc0cc2c33b4a6163acc8a764599bab769ffe9
diff --git a/net/test/mark_test.py b/net/test/mark_test.py
index 7be4561..a1b0ae4 100755
--- a/net/test/mark_test.py
+++ b/net/test/mark_test.py
@@ -504,6 +504,9 @@
       cls.tuns[netid].close()
     cls._RestoreSysctls()
 
+  def setUp(self):
+    self.ClearTunQueues()
+
   def SetSocketMark(self, s, netid):
     if netid is None:
       netid = 0
@@ -766,14 +769,11 @@
       pass
 
 
-class MarkTest(InboundMarkingTest):
+class OutgoingRoutingTest(MultiNetworkTest):
 
   # How many times to run outgoing packet tests.
   ITERATIONS = 5
 
-  def setUp(self):
-    self.ClearTunQueues()
-
   def CheckPingPacket(self, version, netid, routing_mode, dstaddr, packet):
     s = self.BuildSocket(version, net_test.PingSocket, netid, routing_mode)
 
@@ -940,6 +940,9 @@
     self.CheckRemarking(6, False)
     self.CheckRemarking(6, True)
 
+
+class MarkTest(InboundMarkingTest):
+
   def CheckReflection(self, version, gen_packet, gen_reply):
     """Checks that replies go out on the same interface as the original.
 
@@ -1152,10 +1155,6 @@
             self.CheckTCPConnection(mode, listensocket, netid, version, myaddr,
                                     remoteaddr, packet, reply, msg)
 
-  def tearDown(self):
-    # Restore default syncookie behaviour.
-    self.SetSysctl(SYNCOOKIES_SYSCTL, 1)
-
   def testBasicTCP(self):
     self.CheckTCP(4, [None, self.MODE_BINDTODEVICE, self.MODE_EXPLICIT_MARK])
     self.CheckTCP(6, [None, self.MODE_BINDTODEVICE, self.MODE_EXPLICIT_MARK])
@@ -1320,9 +1319,6 @@
 @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
 class UidRoutingTest(MultiNetworkTest):
 
-  def setUp(self):
-    self.iproute = iproute.IPRoute()
-
   def GetRulesAtPriority(self, version, priority):
     rules = self.iproute.DumpRules(version)
     out = [(rule, attributes) for rule, attributes in rules