Remove the EXPERIMENTAL from UID routing.

Change-Id: I12e6f072f9c7c096c5212becc77e83b4407ab0d0
diff --git a/net/test/iproute.py b/net/test/iproute.py
index a894ce3..dec59d4 100644
--- a/net/test/iproute.py
+++ b/net/test/iproute.py
@@ -78,7 +78,7 @@
 RTA_CACHEINFO = 12
 RTA_TABLE = 15
 RTA_MARK = 16
-RTA_EXPERIMENTAL_UID = 18
+RTA_UID = 18
 
 # Route metric attributes.
 RTAX_MTU = 2
@@ -135,8 +135,8 @@
 FRA_FWMARK = 10
 FRA_TABLE = 15
 FRA_OIFNAME = 17
-FRA_EXPERIMENTAL_UID_START = 18
-FRA_EXPERIMENTAL_UID_END = 19
+FRA_UID_START = 18
+FRA_UID_END = 19
 
 
 def CommandVerb(command):
@@ -243,11 +243,11 @@
       name = nla_type
 
     if name in ["FRA_PRIORITY", "FRA_FWMARK", "FRA_TABLE",
-                "FRA_EXPERIMENTAL_UID_START", "FRA_EXPERIMENTAL_UID_END",
+                "FRA_UID_START", "FRA_UID_END",
                 "RTA_OIF", "RTA_PRIORITY", "RTA_TABLE", "RTA_MARK"]:
       data = struct.unpack("=I", nla_data)[0]
     elif name in ["IFA_ADDRESS", "IFA_LOCAL", "RTA_DST", "RTA_SRC",
-                  "RTA_GATEWAY", "RTA_PREFSRC", "RTA_EXPERIMENTAL_UID",
+                  "RTA_GATEWAY", "RTA_PREFSRC", "RTA_UID",
                   "NDA_DST"]:
       data = socket.inet_ntop(family, nla_data)
     elif name in ["FRA_IIFNAME", "FRA_OIFNAME"]:
@@ -417,8 +417,8 @@
     return self._Rule(version, is_add, table, nlattr, priority)
 
   def UidRangeRule(self, version, is_add, start, end, table, priority=16383):
-    nlattr = (self._NlAttrU32(FRA_EXPERIMENTAL_UID_START, start) +
-              self._NlAttrU32(FRA_EXPERIMENTAL_UID_END, end))
+    nlattr = (self._NlAttrU32(FRA_UID_START, start) +
+              self._NlAttrU32(FRA_UID_END, end))
     return self._Rule(version, is_add, table, nlattr, priority)
 
   def UnreachableRule(self, version, is_add, priority):
@@ -540,7 +540,7 @@
     if mark is not None:
       rtmsg += self._NlAttrU32(RTA_MARK, mark)
     if uid is not None:
-      rtmsg += self._NlAttrU32(RTA_EXPERIMENTAL_UID, uid)
+      rtmsg += self._NlAttrU32(RTA_UID, uid)
     self._SendNlRequest(command, rtmsg)
 
   def AddRoute(self, version, table, dest, prefixlen, nexthop, dev):
diff --git a/net/test/mark_test.py b/net/test/mark_test.py
index 9e78b7a..8367005 100755
--- a/net/test/mark_test.py
+++ b/net/test/mark_test.py
@@ -67,7 +67,7 @@
   # Dump all the rules. If we find a rule using the UID range selector, then the
   # kernel supports UID range routing.
   rules = iproute.IPRoute().DumpRules(6)
-  result = any("FRA_EXPERIMENTAL_UID_START" in attrs for rule, attrs in rules)
+  result = any("FRA_UID_START" in attrs for rule, attrs in rules)
 
   # Delete the rule.
   iproute.IPRoute().UidRangeRule(6, False, 1000, 2000, 100)
@@ -96,7 +96,7 @@
 HAVE_MARK_REFLECT = os.path.isfile(IPV4_MARK_REFLECT_SYSCTL)
 HAVE_TCP_MARK_ACCEPT = os.path.isfile(TCP_MARK_ACCEPT_SYSCTL)
 
-HAVE_EXPERIMENTAL_UID_ROUTING = HaveUidRouting()
+HAVE_UID_ROUTING = HaveUidRouting()
 
 # The IP[V6]UNICAST_IF socket option was added between 3.1 and 3.4.
 HAVE_UNICAST_IF = LINUX_VERSION >= (3, 4, 0)
@@ -467,7 +467,7 @@
       table = cls._TableForNetid(netid)
 
       # Set up routing rules.
-      if HAVE_EXPERIMENTAL_UID_ROUTING:
+      if HAVE_UID_ROUTING:
         start, end = cls.UidRangeForNetid(netid)
         cls.iproute.UidRangeRule(version, is_add, start, end, table,
                                  priority=100)
@@ -966,7 +966,7 @@
     """Checks that socket marking selects the right outgoing interface."""
     self.CheckOutgoingPackets("mark")
 
-  @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+  @unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
   def testUidRouting(self):
     """Checks that UID routing selects the right outgoing interface."""
     self.CheckOutgoingPackets("uid")
@@ -1340,11 +1340,11 @@
   def testIPv6MarkAccept(self):
     self.CheckTCP(6, [self.MODE_INCOMING_MARK])
 
-  @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+  @unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
   def testIPv4UidAccept(self):
     self.CheckTCP(4, [self.MODE_UID])
 
-  @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+  @unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
   def testIPv6UidAccept(self):
     self.CheckTCP(6, [self.MODE_UID])
 
@@ -1534,12 +1534,12 @@
     self.CheckPMTU(6, True, ["mark", "oif"])
     self.CheckPMTU(6, False, ["mark", "oif"])
 
-  @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+  @unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
   def testIPv4UIDPMTU(self):
     self.CheckPMTU(4, True, ["uid"])
     self.CheckPMTU(4, False, ["uid"])
 
-  @unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+  @unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
   def testIPv6UIDPMTU(self):
     self.CheckPMTU(6, True, ["uid"])
     self.CheckPMTU(6, False, ["uid"])
@@ -1566,7 +1566,7 @@
       self.SetMarkReflectSysctls(0)
 
 
-@unittest.skipUnless(HAVE_EXPERIMENTAL_UID_ROUTING, "no UID routing")
+@unittest.skipUnless(HAVE_UID_ROUTING, "no UID routing")
 class UidRoutingTest(MultiNetworkTest):
 
   def GetRulesAtPriority(self, version, priority):
@@ -1580,8 +1580,8 @@
     for priority in [0, 32766, 32767]:
       rules.extend(self.GetRulesAtPriority(version, priority))
     for _, attributes in rules:
-      self.assertNotIn("FRA_EXPERIMENTAL_UID_START", attributes)
-      self.assertNotIn("FRA_EXPERIMENTAL_UID_END", attributes)
+      self.assertNotIn("FRA_UID_START", attributes)
+      self.assertNotIn("FRA_UID_END", attributes)
 
   def testIPv4InitialTablesHaveNoUIDs(self):
     self.CheckInitialTablesHaveNoUIDs(4)
@@ -1605,8 +1605,8 @@
       self.assertTrue(rules)
       _, attributes = rules[-1]
       self.assertEquals(priority, attributes["FRA_PRIORITY"])
-      self.assertEquals(start, attributes["FRA_EXPERIMENTAL_UID_START"])
-      self.assertEquals(end, attributes["FRA_EXPERIMENTAL_UID_END"])
+      self.assertEquals(start, attributes["FRA_UID_START"])
+      self.assertEquals(end, attributes["FRA_UID_END"])
       self.assertEquals(table, attributes["FRA_TABLE"])
     finally:
       self.iproute.UidRangeRule(version, False, start, end, table,