Merge changes I27b7e463,Ie9ab9b76

* changes:
  Enable algorithm net tests for 3.18 kernels
  Fix algorithm tests to ensure no lingering sockets
diff --git a/net/test/xfrm_algorithm_test.py b/net/test/xfrm_algorithm_test.py
index 90e7ee0..6adc461 100755
--- a/net/test/xfrm_algorithm_test.py
+++ b/net/test/xfrm_algorithm_test.py
@@ -136,7 +136,6 @@
     new_name = new_name.replace("(", "-").replace(")", "")  # remove parens
     setattr(cls, new_name, TestClosure)
 
-  @unittest.skipIf(net_test.LINUX_VERSION[:2] == (3, 18), "b/63589559")
   def ParamTestSocketPolicySimple(self, params):
     """Test two-way traffic using transport mode and socket policies."""
 
@@ -252,6 +251,12 @@
     sock_right.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
     self.SelectInterface(sock_right, netid, "mark")
 
+    # For UDP, set SO_LINGER to 0, to prevent TCP sockets from hanging around
+    # in a TIME_WAIT state.
+    if params["proto"] == SOCK_STREAM:
+        net_test.DisableFinWait(sock_left)
+        net_test.DisableFinWait(sock_right)
+
     # Apply the left outbound socket policy.
     xfrm_base.ApplySocketPolicy(sock_left, family, xfrm.XFRM_POLICY_OUT,
                                 spi_right, req_ids[0], None)
@@ -320,8 +325,6 @@
       sock_left.send("hello request")
       data = sock_left.recv(2048)
       self.assertEquals("hello response", data)
-      if params["proto"] == SOCK_STREAM:
-        sock_left.shutdown(SHUT_RD)
       sock_left.close()
       server.join()
     if server_error: