shill: Move netlink functionality to libshill-net shared library

By exporting netlink functionality to a shared library, other
applications can use the interfaces provided by this library
to communicate with the cfg80211 kernel module and mac80211 drivers.

To use this library, add dependency for libshill-net-<(libbase_ver) in
your gyp file, and include the headers from <shill/net/*>

BUG=chromium:427982
TEST=unittests, run wifi_matfunc suite for shill regression test

Change-Id: Ia8ea063daaa63de27fe81e153458e149586086ec
Reviewed-on: https://chromium-review.googlesource.com/226830
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
diff --git a/shill.gyp b/shill.gyp
index 6d8cdbd..0f75dce 100644
--- a/shill.gyp
+++ b/shill.gyp
@@ -137,6 +137,8 @@
       'variables': {
         'exported_deps': [
           'glib-2.0',
+          'libnl-3.0',
+          'libnl-genl-3.0',
         ],
         'deps': ['<@(exported_deps)'],
       },
@@ -144,13 +146,22 @@
         '-fvisibility=default',
       ],
       'sources': [
+        'net/attribute_list.cc',
         'net/byte_string.cc',
+        'net/control_netlink_attribute.cc',
+        'net/generic_netlink_message.cc',
         'net/glib_io_input_handler.cc',
         'net/glib_io_ready_handler.cc',
         'net/io_handler_factory.cc',
         'net/io_input_handler.cc',
         'net/io_ready_handler.cc',
         'net/ip_address.cc',
+        'net/netlink_attribute.cc',
+        'net/netlink_manager.cc',
+        'net/netlink_message.cc',
+        'net/netlink_socket.cc',
+        'net/nl80211_attribute.cc',
+        'net/nl80211_message.cc',
         'net/rtnl_handler.cc',
         'net/rtnl_listener.cc',
         'net/rtnl_message.cc',
@@ -168,6 +179,7 @@
       ],
       'sources': [
         'net/mock_io_handler_factory.cc',
+        'net/mock_netlink_manager.cc',
         'net/mock_rtnl_handler.cc',
         'net/mock_sockets.cc',
         'net/mock_time.cc',
@@ -191,8 +203,6 @@
           'glib-2.0',
           'libcares',
           'libmetrics-<(libbase_ver)',
-          'libnl-3.0',
-          'libnl-genl-3.0',
           'protobuf-lite',
         ],
         'deps': ['<@(exported_deps)'],
@@ -299,7 +309,6 @@
         'arp_client.cc',
         'arp_packet.cc',
         'async_connection.cc',
-        'attribute_list.cc',
         'callback80211_metrics.cc',
         'certificate_file.cc',
         'connection.cc',
@@ -308,7 +317,6 @@
         'connection_info_reader.cc',
         'connection_tester.cc',
         'connectivity_trial.cc',
-        'control_netlink_attribute.cc',
         'crypto_des_cbc.cc',
         'crypto_provider.cc',
         'crypto_rot47.cc',
@@ -344,7 +352,6 @@
         'external_task.cc',
         'file_io.cc',
         'file_reader.cc',
-        'generic_netlink_message.cc',
         'geolocation_info.cc',
         'glib.cc',
         'hook_table.cc',
@@ -363,12 +370,6 @@
         'manager.cc',
         'manager_dbus_adaptor.cc',
         'metrics.cc',
-        'netlink_attribute.cc',
-        'netlink_manager.cc',
-        'netlink_message.cc',
-        'netlink_socket.cc',
-        'nl80211_attribute.cc',
-        'nl80211_message.cc',
         'pending_activation_store.cc',
         'portal_detector.cc',
         'power_manager.cc',
@@ -584,12 +585,6 @@
             'ipconfig_unittest.cc',
             'key_file_store_unittest.cc',
             'key_value_store_unittest.cc',
-            'net/byte_string_unittest.cc',
-            'net/ip_address_unittest.cc',
-            'net/rtnl_handler_unittest.cc',
-            'net/rtnl_listener_unittest.cc',
-            'net/rtnl_message_unittest.cc',
-            'net/shill_time_unittest.cc',
             'link_monitor_unittest.cc',
             'mac80211_monitor_unittest.cc',
             'manager_unittest.cc',
@@ -634,7 +629,6 @@
             'mock_mac80211_monitor.cc',
             'mock_manager.cc',
             'mock_metrics.cc',
-            'mock_netlink_manager.cc',
             'mock_pending_activation_store.cc',
             'mock_portal_detector.cc',
             'mock_power_manager.cc',
@@ -663,9 +657,15 @@
             'mock_wifi.cc',
             'mock_wifi_provider.cc',
             'mock_wifi_service.cc',
-            'netlink_manager_unittest.cc',
-            'netlink_message_unittest.cc',
-            'netlink_socket_unittest.cc',
+            'net/byte_string_unittest.cc',
+            'net/ip_address_unittest.cc',
+            'net/netlink_manager_unittest.cc',
+            'net/netlink_message_unittest.cc',
+            'net/netlink_socket_unittest.cc',
+            'net/rtnl_handler_unittest.cc',
+            'net/rtnl_listener_unittest.cc',
+            'net/rtnl_message_unittest.cc',
+            'net/shill_time_unittest.cc',
             'nice_mock_control.cc',
             'pending_activation_store_unittest.cc',
             'portal_detector_unittest.cc',