shill: command line support for DHCPv6

Add command line option "--dhcpv6-enabled-devices" to enable DHCPv6
for specific devices.  The obtained DHCPv6 configuration is for
informational purpose only, will not be used to setup connection nor
update system configuration by shill.

Note: since shill does not use DHCPv6 configuration to setup any
connection, other IP configuration (DHCPv4 or IPv6 over RDNSS)
is required in order for the device to setup a connection for a
given network service.

BUG=chromium:492764
TEST=USE="dhcpv6 asan clang" emerge-$BOARD shill
TEST=USE="asan clang" emerge-$BOARD shill
TEST=Verify with new DHCPv6 client auotest
Manual Test:
1. Build/install IPv6 enabled dhcpcd and DHCPv6 enabled shill
2. Setup a virtual ethernet pair using:
   "ip link add name veth_master type veth peer name slave"
2. Setup a DHCPv6 server on veth_master interface
   "/usr/sbin/dhcpd -6 -cf /tmp/dhcp6.conf veth_master"
3. Start shill with DHCPv6 enabled for "slave" interface
4. Verify DHCPv6 configuration via
   "/usr/local/lib/flimflam/test/list-ipconfigs slave"

Change-Id: Ic152400f61e5bb4cb02f237b97da971ed24da27f
Reviewed-on: https://chromium-review.googlesource.com/276713
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
12 files changed
tree: 39df9a1c62a0fbfc03ff7a52e3f72e9e6f038e28
  1. bin/
  2. cellular/
  3. dbus_bindings/
  4. dhcp/
  5. doc/
  6. ethernet/
  7. init/
  8. mobile_operator_db/
  9. net/
  10. pppoe/
  11. setup_wifi/
  12. shims/
  13. supplicant/
  14. test-scripts/
  15. udev/
  16. upstart/
  17. vpn/
  18. wifi/
  19. wimax/
  20. .gitignore
  21. accessor_interface.h
  22. active_link_monitor.cc
  23. active_link_monitor.h
  24. active_link_monitor_unittest.cc
  25. adaptor_interfaces.h
  26. arp_client.cc
  27. arp_client.h
  28. arp_client_test_helper.cc
  29. arp_client_test_helper.h
  30. arp_client_unittest.cc
  31. arp_packet.cc
  32. arp_packet.h
  33. arp_packet_unittest.cc
  34. async_connection.cc
  35. async_connection.h
  36. async_connection_unittest.cc
  37. callbacks.h
  38. certificate_file.cc
  39. certificate_file.h
  40. certificate_file_unittest.cc
  41. connection.cc
  42. connection.h
  43. connection_health_checker.cc
  44. connection_health_checker.h
  45. connection_health_checker_unittest.cc
  46. connection_info.cc
  47. connection_info.h
  48. connection_info_reader.cc
  49. connection_info_reader.h
  50. connection_info_reader_unittest.cc
  51. connection_info_unittest.cc
  52. connection_tester.cc
  53. connection_tester.h
  54. connection_tester_unittest.cc
  55. connection_unittest.cc
  56. connectivity_trial.cc
  57. connectivity_trial.h
  58. connectivity_trial_unittest.cc
  59. control_interface.h
  60. crypto_des_cbc.cc
  61. crypto_des_cbc.h
  62. crypto_des_cbc_unittest.cc
  63. crypto_interface.h
  64. crypto_provider.cc
  65. crypto_provider.h
  66. crypto_provider_unittest.cc
  67. crypto_rot47.cc
  68. crypto_rot47.h
  69. crypto_rot47_unittest.cc
  70. crypto_util_proxy.cc
  71. crypto_util_proxy.h
  72. crypto_util_proxy_unittest.cc
  73. dbus_adaptor.cc
  74. dbus_adaptor.h
  75. dbus_adaptor_unittest.cc
  76. dbus_async_call_helper.h
  77. dbus_control.cc
  78. dbus_control.h
  79. dbus_manager.cc
  80. dbus_manager.h
  81. dbus_manager_unittest.cc
  82. dbus_name_watcher.cc
  83. dbus_name_watcher.h
  84. dbus_name_watcher_unittest.cc
  85. dbus_properties.cc
  86. dbus_properties.h
  87. dbus_properties_proxy.cc
  88. dbus_properties_proxy.h
  89. dbus_properties_proxy_interface.h
  90. dbus_properties_unittest.cc
  91. dbus_property_matchers.h
  92. dbus_service_proxy.cc
  93. dbus_service_proxy.h
  94. dbus_service_proxy_interface.h
  95. dbus_variant_gmock_printer.cc
  96. dbus_variant_gmock_printer.h
  97. default_profile.cc
  98. default_profile.h
  99. default_profile_unittest.cc
  100. device.cc
  101. device.h
  102. device_claimer.cc
  103. device_claimer.h
  104. device_claimer_unittest.cc
  105. device_dbus_adaptor.cc
  106. device_dbus_adaptor.h
  107. device_info.cc
  108. device_info.h
  109. device_info_unittest.cc
  110. device_stub.h
  111. device_unittest.cc
  112. diagnostics_reporter.cc
  113. diagnostics_reporter.h
  114. diagnostics_reporter_unittest.cc
  115. dns_client.cc
  116. dns_client.h
  117. dns_client_factory.cc
  118. dns_client_factory.h
  119. dns_client_unittest.cc
  120. dns_server_tester.cc
  121. dns_server_tester.h
  122. dns_server_tester_unittest.cc
  123. eap_credentials.cc
  124. eap_credentials.h
  125. eap_credentials_unittest.cc
  126. eap_listener.cc
  127. eap_listener.h
  128. eap_listener_unittest.cc
  129. eap_protocol.h
  130. ephemeral_profile.cc
  131. ephemeral_profile.h
  132. error.cc
  133. error.h
  134. error_unittest.cc
  135. event_dispatcher.cc
  136. event_dispatcher.h
  137. external_task.cc
  138. external_task.h
  139. external_task_unittest.cc
  140. file_io.cc
  141. file_io.h
  142. file_reader.cc
  143. file_reader.h
  144. file_reader_unittest.cc
  145. geolocation_info.cc
  146. geolocation_info.h
  147. glib.cc
  148. glib.h
  149. glib_io_handler_factory.cc
  150. glib_io_handler_factory.h
  151. glib_io_input_handler.cc
  152. glib_io_input_handler.h
  153. glib_io_ready_handler.cc
  154. glib_io_ready_handler.h
  155. HACKING
  156. hook_table.cc
  157. hook_table.h
  158. hook_table_unittest.cc
  159. http_proxy.cc
  160. http_proxy.h
  161. http_proxy_unittest.cc
  162. http_request.cc
  163. http_request.h
  164. http_request_unittest.cc
  165. http_url.cc
  166. http_url.h
  167. http_url_unittest.cc
  168. icmp.cc
  169. icmp.h
  170. icmp_unittest.cc
  171. ip_address_store.cc
  172. ip_address_store.h
  173. ip_address_store_unittest.cc
  174. ipconfig.cc
  175. ipconfig.h
  176. ipconfig_dbus_adaptor.cc
  177. ipconfig_dbus_adaptor.h
  178. ipconfig_unittest.cc
  179. key_file_store.cc
  180. key_file_store.h
  181. key_file_store_unittest.cc
  182. key_value_store.cc
  183. key_value_store.h
  184. key_value_store_unittest.cc
  185. link_monitor.cc
  186. link_monitor.h
  187. link_monitor_unittest.cc
  188. logging.cc
  189. logging.h
  190. manager.cc
  191. manager.h
  192. manager_dbus_adaptor.cc
  193. manager_dbus_adaptor.h
  194. manager_unittest.cc
  195. metrics.cc
  196. metrics.h
  197. metrics_unittest.cc
  198. mock_active_link_monitor.cc
  199. mock_active_link_monitor.h
  200. mock_adaptors.cc
  201. mock_adaptors.h
  202. mock_ares.cc
  203. mock_ares.h
  204. mock_arp_client.cc
  205. mock_arp_client.h
  206. mock_async_connection.cc
  207. mock_async_connection.h
  208. mock_certificate_file.cc
  209. mock_certificate_file.h
  210. mock_connection.cc
  211. mock_connection.h
  212. mock_connection_health_checker.cc
  213. mock_connection_health_checker.h
  214. mock_connection_info_reader.cc
  215. mock_connection_info_reader.h
  216. mock_connectivity_trial.cc
  217. mock_connectivity_trial.h
  218. mock_control.cc
  219. mock_control.h
  220. mock_crypto_util_proxy.cc
  221. mock_crypto_util_proxy.h
  222. mock_dbus_manager.cc
  223. mock_dbus_manager.h
  224. mock_dbus_properties_proxy.cc
  225. mock_dbus_properties_proxy.h
  226. mock_dbus_service_proxy.cc
  227. mock_dbus_service_proxy.h
  228. mock_device.cc
  229. mock_device.h
  230. mock_device_claimer.cc
  231. mock_device_claimer.h
  232. mock_device_info.cc
  233. mock_device_info.h
  234. mock_diagnostics_reporter.cc
  235. mock_diagnostics_reporter.h
  236. mock_dns_client.cc
  237. mock_dns_client.h
  238. mock_dns_client_factory.cc
  239. mock_dns_client_factory.h
  240. mock_dns_server_tester.cc
  241. mock_dns_server_tester.h
  242. mock_eap_credentials.cc
  243. mock_eap_credentials.h
  244. mock_eap_listener.cc
  245. mock_eap_listener.h
  246. mock_event_dispatcher.cc
  247. mock_event_dispatcher.h
  248. mock_external_task.cc
  249. mock_external_task.h
  250. mock_file_io.h
  251. mock_glib.cc
  252. mock_glib.h
  253. mock_http_request.cc
  254. mock_http_request.h
  255. mock_ip_address_store.cc
  256. mock_ip_address_store.h
  257. mock_ipconfig.cc
  258. mock_ipconfig.h
  259. mock_link_monitor.cc
  260. mock_link_monitor.h
  261. mock_log.cc
  262. mock_log.h
  263. mock_log_unittest.cc
  264. mock_manager.cc
  265. mock_manager.h
  266. mock_metrics.cc
  267. mock_metrics.h
  268. mock_passive_link_monitor.cc
  269. mock_passive_link_monitor.h
  270. mock_pending_activation_store.cc
  271. mock_pending_activation_store.h
  272. mock_permission_broker_proxy.h
  273. mock_portal_detector.cc
  274. mock_portal_detector.h
  275. mock_power_manager.cc
  276. mock_power_manager.h
  277. mock_power_manager_proxy.cc
  278. mock_power_manager_proxy.h
  279. mock_ppp_device.cc
  280. mock_ppp_device.h
  281. mock_ppp_device_factory.cc
  282. mock_ppp_device_factory.h
  283. mock_process_killer.cc
  284. mock_process_killer.h
  285. mock_profile.cc
  286. mock_profile.h
  287. mock_property_store.cc
  288. mock_property_store.h
  289. mock_proxy_factory.cc
  290. mock_proxy_factory.h
  291. mock_resolver.cc
  292. mock_resolver.h
  293. mock_routing_table.cc
  294. mock_routing_table.h
  295. mock_service.cc
  296. mock_service.h
  297. mock_socket_info_reader.cc
  298. mock_socket_info_reader.h
  299. mock_store.cc
  300. mock_store.h
  301. mock_traffic_monitor.cc
  302. mock_traffic_monitor.h
  303. mock_virtual_device.cc
  304. mock_virtual_device.h
  305. NETLINK_MESSAGES.txt
  306. nice_mock_control.cc
  307. nice_mock_control.h
  308. OWNERS
  309. passive_link_monitor.cc
  310. passive_link_monitor.h
  311. passive_link_monitor_unittest.cc
  312. pending_activation_store.cc
  313. pending_activation_store.h
  314. pending_activation_store_unittest.cc
  315. permission_broker_proxy.cc
  316. permission_broker_proxy.h
  317. portal_detector.cc
  318. portal_detector.h
  319. portal_detector_unittest.cc
  320. power_manager.cc
  321. power_manager.h
  322. power_manager_proxy.cc
  323. power_manager_proxy.h
  324. power_manager_proxy_interface.h
  325. power_manager_unittest.cc
  326. ppp_daemon.cc
  327. ppp_daemon.h
  328. ppp_daemon_unittest.cc
  329. ppp_device.cc
  330. ppp_device.h
  331. ppp_device_factory.cc
  332. ppp_device_factory.h
  333. ppp_device_unittest.cc
  334. process_killer.cc
  335. process_killer.h
  336. process_killer_unittest.cc
  337. profile.cc
  338. profile.h
  339. profile_dbus_adaptor.cc
  340. profile_dbus_adaptor.h
  341. profile_unittest.cc
  342. property_accessor.h
  343. property_accessor_unittest.cc
  344. property_iterator.h
  345. property_observer.h
  346. property_observer_interface.h
  347. property_observer_unittest.cc
  348. property_store.cc
  349. property_store.h
  350. property_store_unittest.cc
  351. property_store_unittest.h
  352. protobuf_lite_streams.cc
  353. protobuf_lite_streams.h
  354. provider_db_unittest.bfd
  355. provider_interface.h
  356. proxy_factory.cc
  357. proxy_factory.h
  358. refptr_types.h
  359. resolver.cc
  360. resolver.h
  361. resolver_unittest.cc
  362. result_aggregator.cc
  363. result_aggregator.h
  364. result_aggregator_unittest.cc
  365. routing_table.cc
  366. routing_table.h
  367. routing_table_entry.h
  368. routing_table_unittest.cc
  369. rpc_task.cc
  370. rpc_task.h
  371. rpc_task_dbus_adaptor.cc
  372. rpc_task_dbus_adaptor.h
  373. rpc_task_unittest.cc
  374. scope_logger.cc
  375. scope_logger.h
  376. scope_logger_unittest.cc
  377. scoped_umask.cc
  378. scoped_umask.h
  379. service.cc
  380. service.h
  381. service_dbus_adaptor.cc
  382. service_dbus_adaptor.h
  383. service_property_change_notifier.cc
  384. service_property_change_notifier.h
  385. service_property_change_test.cc
  386. service_property_change_test.h
  387. service_sorter.h
  388. service_under_test.cc
  389. service_under_test.h
  390. service_unittest.cc
  391. shared_dbus_connection.cc
  392. shared_dbus_connection.h
  393. shill.gyp
  394. shill.gypi
  395. shill_ares.cc
  396. shill_ares.h
  397. shill_config.cc
  398. shill_config.h
  399. shill_daemon.cc
  400. shill_daemon.h
  401. shill_export.h
  402. shill_main.cc
  403. shill_test_config.cc
  404. shill_test_config.h
  405. shill_unittest.cc
  406. socket_info.cc
  407. socket_info.h
  408. socket_info_reader.cc
  409. socket_info_reader.h
  410. socket_info_reader_unittest.cc
  411. socket_info_unittest.cc
  412. static_ip_parameters.cc
  413. static_ip_parameters.h
  414. static_ip_parameters_unittest.cc
  415. store_interface.h
  416. stub_storage.h
  417. technology.cc
  418. technology.h
  419. technology_unittest.cc
  420. TESTING
  421. testing.h
  422. testrunner.cc
  423. tethering.cc
  424. tethering.h
  425. traffic_monitor.cc
  426. traffic_monitor.h
  427. traffic_monitor_unittest.cc
  428. virtual_device.cc
  429. virtual_device.h
  430. virtual_device_unittest.cc