OSDN Git Service

android-x86/system-netd.git
10 years agoMerge "Revert "Notify network observers of route changes.""
Lorenzo Colitti [Fri, 20 Jun 2014 07:03:19 +0000 (07:03 +0000)]
Merge "Revert "Notify network observers of route changes.""

10 years agoRevert "Notify network observers of route changes."
Lorenzo Colitti [Fri, 20 Jun 2014 07:02:36 +0000 (07:02 +0000)]
Revert "Notify network observers of route changes."

This reverts commit d2f23fb6285000831f14cacc16881d96f6046c33.

Change-Id: Ifabbc6848ab33842461465fccb9886863a08aec6

10 years agoNotify network observers of route changes.
Lorenzo Colitti [Thu, 12 Jun 2014 04:51:05 +0000 (13:51 +0900)]
Notify network observers of route changes.

Bug: 9180552
Change-Id: Ic23025e4d7cb4e58ae59017777267ac45f00b434

10 years agoMerge "Flush both IPv4 and IPv6 routes."
Lorenzo Colitti [Fri, 20 Jun 2014 06:02:48 +0000 (06:02 +0000)]
Merge "Flush both IPv4 and IPv6 routes."

10 years agoFlush both IPv4 and IPv6 routes.
Lorenzo Colitti [Tue, 17 Jun 2014 07:14:17 +0000 (16:14 +0900)]
Flush both IPv4 and IPv6 routes.

The current code unintentionally flushes only IPv4 routes
because it reuses a function that is normally used to add and
remove routes (where the IP version is implicitly specified by
the route to add or remove).

Instead of fixing the runIpRouteCommand function, add a new
flushIpRoutes function because runIpRouteCommand will be
replaced by a netlink implementation in an upcoming CL.

Change-Id: Ie96ae4124baca3edb8e0d0841e7abadb6b3ee9ab

10 years agoMerge "Notify network observers of route changes."
Lorenzo Colitti [Fri, 20 Jun 2014 05:52:15 +0000 (05:52 +0000)]
Merge "Notify network observers of route changes."

10 years agoserver: check interface names in RPC arguments for validity
JP Abgrall [Fri, 20 Jun 2014 01:35:24 +0000 (18:35 -0700)]
server: check interface names in RPC arguments for validity

This patch introduces a method isIfaceName that checks interface
names from various RPCs for validity before e.g. using them as
part of iptables arguments or in filenames.

All of these RPC calls can only be called from applications
with at least the CONNECTIVITY_INTERNAL permission in recent
Android versions, so the impact of the missing checks luckily
isn't very high.

Orig-Author: Jann Horn <jann@thejh.net>

Change-Id: I80df8d745a3de99ad02d6649f0d10562c81f6b98
Signed-off-by: JP Abgrall <jpa@google.com>
10 years agoCache interface indices in case interfaces go away.
Paul Jensen [Thu, 12 Jun 2014 20:46:37 +0000 (16:46 -0400)]
Cache interface indices in case interfaces go away.

Without caching them netd will fail to remove rules and routes,
for example, when the Bluetooth reverse-tether interface ("bt-pan")
goes away.

bug:15407087

Change-Id: I99fcf00f9645a0b029455516a705b70110f62ff6

10 years agoMerge "Pass a socket mark to clatd so it can bind to its network."
Lorenzo Colitti [Fri, 13 Jun 2014 02:35:29 +0000 (02:35 +0000)]
Merge "Pass a socket mark to clatd so it can bind to its network."

10 years agoPass a socket mark to clatd so it can bind to its network.
Lorenzo Colitti [Mon, 9 Jun 2014 05:09:20 +0000 (14:09 +0900)]
Pass a socket mark to clatd so it can bind to its network.

Bug: 15340961
Change-Id: If15e90cbd5526f6c8fd839d4d009846d64d9e77a

10 years agoam b72f6d71: (-s ours) DO NOT MERGE: Fix use-after-free of interface name during...
Paul Jensen [Thu, 12 Jun 2014 19:56:50 +0000 (19:56 +0000)]
am b72f6d71: (-s ours) DO NOT MERGE: Fix use-after-free of interface name during network destruction.

* commit 'b72f6d71840afeb1923f64f8c44417f4f208c282':
  DO NOT MERGE: Fix use-after-free of interface name during network destruction.

10 years agoDO NOT MERGE: Fix use-after-free of interface name during network destruction.
Paul Jensen [Wed, 11 Jun 2014 14:58:16 +0000 (10:58 -0400)]
DO NOT MERGE: Fix use-after-free of interface name during network destruction.

bug:15560990

Change-Id: I899827c4f50847a3a60b6359f829bee5d6eb4f00
(cherry picked from commit 6ff16785ae1f67f44a73ad00d6c86690af6772d2)

10 years agoFix use-after-free of interface name during network destruction.
Paul Jensen [Wed, 11 Jun 2014 14:58:16 +0000 (10:58 -0400)]
Fix use-after-free of interface name during network destruction.

bug:15560990

Change-Id: I899827c4f50847a3a60b6359f829bee5d6eb4f00

10 years agoam 41417388: (-s ours) Use AF_INET sockets when checking netIds in setNetworkFor...
Sreeram Ramachandran [Fri, 6 Jun 2014 15:50:13 +0000 (15:50 +0000)]
am 41417388: (-s ours) Use AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}(). DO NOT MERGE

* commit '414173882a87ded2fdd4f5181cd7dff3842a8917':
  Use AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}(). DO NOT MERGE

10 years agoam d42cdf50: am 437eb9c3: Merge "Changes uses of index() to strchr()"
Dan Albert [Thu, 5 Jun 2014 20:33:08 +0000 (20:33 +0000)]
am d42cdf50: am 437eb9c3: Merge "Changes uses of index() to strchr()"

* commit 'd42cdf50ab883acb74b17d63646f0228d881df3c':
  Changes uses of index() to strchr()

10 years agoam 437eb9c3: Merge "Changes uses of index() to strchr()"
Dan Albert [Thu, 5 Jun 2014 20:29:33 +0000 (20:29 +0000)]
am 437eb9c3: Merge "Changes uses of index() to strchr()"

* commit '437eb9c3092c96c1828e326edb6574090fe37aaa':
  Changes uses of index() to strchr()

10 years agoMerge "Changes uses of index() to strchr()"
Dan Albert [Thu, 5 Jun 2014 19:55:52 +0000 (19:55 +0000)]
Merge "Changes uses of index() to strchr()"

10 years agoChanges uses of index() to strchr()
Dan Albert [Thu, 5 Jun 2014 18:35:41 +0000 (11:35 -0700)]
Changes uses of index() to strchr()

Bionic is geting rid of index() because it was removed from POSIX 2008.

Change-Id: I182523734f372d1c6ed052b1373422332587f8ff

10 years agoUse std::atomic<> instead of volatile sig_atomic_t.
Sreeram Ramachandran [Tue, 3 Jun 2014 19:51:08 +0000 (12:51 -0700)]
Use std::atomic<> instead of volatile sig_atomic_t.

std::atomic<> comes with true load/store barriers, so it's preferable.

Change-Id: Ife47b0e404f41aa74aeb168befd1ff4a6603f3ed

10 years agoRemove unnecessary includes.
Sreeram Ramachandran [Tue, 3 Jun 2014 00:47:36 +0000 (17:47 -0700)]
Remove unnecessary includes.

Neither of these actually does anything.

Change-Id: I82ee09a4565a8e8e4dc5f54f278bf83e002d7387

10 years agoMerge "Pass NetID to clatd as a command line argument."
Paul Jensen [Tue, 3 Jun 2014 17:24:46 +0000 (17:24 +0000)]
Merge "Pass NetID to clatd as a command line argument."

10 years agoPass NetID to clatd as a command line argument.
Paul Jensen [Fri, 30 May 2014 17:29:41 +0000 (13:29 -0400)]
Pass NetID to clatd as a command line argument.

Change-Id: I77a47b24e68c7786f790974f05787a40a4934af5

10 years agoUse AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}(). DO NOT...
Sreeram Ramachandran [Sat, 31 May 2014 02:59:51 +0000 (19:59 -0700)]
Use AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}(). DO NOT MERGE

AF_UNIX sockets don't need to be marked, so we don't give netd the permission to
operate on them (cf: netd.te). I.e., netd doesn't expect to receive them.

Make sure that the creation of the AF_INET socket doesn't trigger another
wasteful check with netd by calling the libc version directly.

Bug: 13885501
Change-Id: I6b549232e57cacd47501edcefa4c0b4b79df9da0
(cherry picked from commit 2756045bebaac342f7cb70dad11519f896d44833)

10 years agoUse AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}().
Sreeram Ramachandran [Sat, 31 May 2014 02:59:51 +0000 (19:59 -0700)]
Use AF_INET sockets when checking netIds in setNetworkFor{Process,Resolv}().

AF_UNIX sockets don't need to be marked, so we don't give netd the permission to
operate on them (cf: netd.te). I.e., netd doesn't expect to receive them.

Make sure that the creation of the AF_INET socket doesn't trigger another
wasteful check with netd by calling the libc version directly.

Bug: 13885501
Change-Id: I6b549232e57cacd47501edcefa4c0b4b79df9da0

10 years agoFix build.
Sreeram Ramachandran [Fri, 30 May 2014 22:11:54 +0000 (15:11 -0700)]
Fix build.

Change-Id: If170e46ff92c6a972bc1c2d838b1ac0eea6e23de

10 years agoam 82eab785: Support legacy routes added by apps via ensureRouteToHost().
Sreeram Ramachandran [Fri, 30 May 2014 21:33:07 +0000 (21:33 +0000)]
am 82eab785: Support legacy routes added by apps via ensureRouteToHost().

* commit '82eab785bd5cb2eff0a263f5b0dcde13e9139588':
  Support legacy routes added by apps via ensureRouteToHost().

10 years agoSupport legacy routes added by apps via ensureRouteToHost().
Sreeram Ramachandran [Thu, 22 May 2014 21:21:49 +0000 (14:21 -0700)]
Support legacy routes added by apps via ensureRouteToHost().

This adds the routes to two fixed tables:
+ LEGACY, which has higher priority than other non-explicit lookup tables
  (per-network and default network).
+ PRIVILEGED_LEGACY, available only to system apps and has higher priority than
  VPNs (system apps are those with the CONNECTIVITY_INTERNAL permission).

This will be changed to per-UID tables once the kernel supports UID-based
routing, so that these legacy routes are scoped to each app and not global.

Also, fix a TODO: The framework (as of http://ag/471599) will not set the
gateway argument if it's actually a direct-connected route.

Change-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9
(cherry picked from commit 38b7af1f2cb9579895465fabc37865f5dadcac25)

10 years agoam ce8f583f: Set errno in NetworkController commands.
Lorenzo Colitti [Fri, 30 May 2014 15:06:46 +0000 (15:06 +0000)]
am ce8f583f: Set errno in NetworkController commands.

* commit 'ce8f583ff6620a19602d3c4604557e1b1501cafa':
  Set errno in NetworkController commands.

10 years agoam a5d68758: merge in master-release history after reset to ec00884cac216d1cb79556ca2...
The Android Automerger [Fri, 30 May 2014 15:06:46 +0000 (15:06 +0000)]
am a5d68758: merge in master-release history after reset to ec00884cac216d1cb79556ca23b21ce55e35af3e

* commit 'a5d6875887a63797711093a169e7ef19c5a1ab3b':
  Fix for DNS resolutions when there is no default network set yet. We need to determine the actual netId to use prior to comparing it against the default netId.  Also initialize the default network variable.

10 years agoTurn on C++11 and make all warnings into errors.
Sreeram Ramachandran [Wed, 28 May 2014 22:07:00 +0000 (15:07 -0700)]
Turn on C++11 and make all warnings into errors.

As a consequence:
+ Comment out the names of all unused parameters.
+ Remove all unused variables and functions.

In server/Android.mk, there are a couple of non-trivial changes:
+ Use libcxx instead of stlport. This is needed to fix a bunch of errors due to
  specifying -std=c++11.
+ LOCAL_SHARED_LIBRARIES is sorted. Technically, the order in which libraries
  are listed has an effect on linking, but nobody should be doing such brittle
  things anyway.

Change-Id: I0aff5b745e04609da23144d0e8be4c5694321b8b

10 years agoSupport legacy routes added by apps via ensureRouteToHost().
Sreeram Ramachandran [Thu, 22 May 2014 21:21:49 +0000 (14:21 -0700)]
Support legacy routes added by apps via ensureRouteToHost().

This adds the routes to two fixed tables:
+ LEGACY, which has higher priority than other non-explicit lookup tables
  (per-network and default network).
+ PRIVILEGED_LEGACY, available only to system apps and has higher priority than
  VPNs (system apps are those with the CONNECTIVITY_INTERNAL permission).

This will be changed to per-UID tables once the kernel supports UID-based
routing, so that these legacy routes are scoped to each app and not global.

Also, fix a TODO: The framework (as of http://ag/471599) will not set the
gateway argument if it's actually a direct-connected route.

Change-Id: I0ee1ca89fdc859d75a89021ca8c1902811b1e4a9

10 years agoSet errno in NetworkController commands.
Lorenzo Colitti [Thu, 29 May 2014 03:20:55 +0000 (12:20 +0900)]
Set errno in NetworkController commands.

Set errno in the NetworkController functions that are called by
CommandListener and where failure causes an operationError. This
is because operationError always appends errno to its messages,
and

"400 481 addInterfaceToNetwork() failed (Device or resource busy)"

is more useful than:

"400 481 addInterfaceToNetwork() failed (Success)"

We already call ALOGE to put descriptive messages in the system
log, but the bugreport already conveniently aggregates all netd
commands in one place in the network_management service dump, and
it would help if the errno in those messages were accurate.

Unfortunately many of the route and iptables commands shell out
to /sbin/ip and we can't return meaningful values, but we'll
fix that when (if?) we replace that with a proper netlink
implementation.

Bug: 15316764
Change-Id: Ia47f451029d611491aa72bca602de77333f2c6a0

10 years agomerge in master-release history after reset to ec00884cac216d1cb79556ca23b21ce55e35af3e
The Android Automerger [Thu, 22 May 2014 14:22:41 +0000 (07:22 -0700)]
merge in master-release history after reset to ec00884cac216d1cb79556ca23b21ce55e35af3e

10 years agomerge in master-release history after reset to ec00884cac216d1cb79556ca23b21ce55e35af3e
The Android Automerger [Thu, 22 May 2014 12:51:13 +0000 (05:51 -0700)]
merge in master-release history after reset to ec00884cac216d1cb79556ca23b21ce55e35af3e

10 years agoImplement the "select network" fwmark command.
Sreeram Ramachandran [Wed, 21 May 2014 21:01:16 +0000 (14:01 -0700)]
Implement the "select network" fwmark command.

Change-Id: Id4a49eb288b18022d53014d1ae2211ed7d1099a6

10 years agoRework the determination of a "valid network".
Sreeram Ramachandran [Wed, 21 May 2014 20:19:43 +0000 (13:19 -0700)]
Rework the determination of a "valid network".

+ isNetIdValid() doesn't make much sense. What we want is whether the netId has
  actually been created (via createNetwork()).
+ It isn't an error to call deleteNetwork() or setDefaultNetwork() even when
  there are no interfaces assigned to the network.
+ Secure all accesses to the maps in PermissionsController with locks; they are
  called from many threads (CommandListener, DnsProxyListener and FwmarkServer).
+ Remove the redundant mIfaceNetidMap.
+ Minor cosmetic changes to things such as #includes and log messages.

Change-Id: Ieb154589b24f00ba8067eaaec4def3534aec4923

10 years agoMark sockets on creation (socket()) and accept4().
Sreeram Ramachandran [Wed, 21 May 2014 20:08:34 +0000 (13:08 -0700)]
Mark sockets on creation (socket()) and accept4().

Continued from: https://android-review.git.corp.google.com/#/c/95094/

Change-Id: Ib0b8f5d7c5013b91eae6bbc3847852eb355c7714

10 years agoNew network selection APIs.
Sreeram Ramachandran [Wed, 21 May 2014 18:41:39 +0000 (11:41 -0700)]
New network selection APIs.

Continued from: https://android-review.git.corp.google.com/#/c/94977/

Change-Id: Ie0576888f50a8ce91bbb0a4794708b406eb0aa35

10 years agoMove netd_client into netd.
Sreeram Ramachandran [Wed, 21 May 2014 15:54:07 +0000 (08:54 -0700)]
Move netd_client into netd.

Change-Id: Ie4b6b303225c93f2448a503d6ea9cebb552cbad5

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Wed, 21 May 2014 12:51:08 +0000 (05:51 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Tue, 20 May 2014 12:51:24 +0000 (05:51 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Mon, 19 May 2014 12:50:25 +0000 (05:50 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Sun, 18 May 2014 12:50:12 +0000 (05:50 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Sat, 17 May 2014 12:51:51 +0000 (05:51 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agomerge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31
The Android Automerger [Thu, 15 May 2014 12:51:28 +0000 (05:51 -0700)]
merge in master-release history after reset to 5ff58d494a5ddf7e544adc77590300f04daf8e31

10 years agoFix build by using the right type (socklen_t instead of int).
Sreeram Ramachandran [Wed, 14 May 2014 16:57:31 +0000 (09:57 -0700)]
Fix build by using the right type (socklen_t instead of int).

Change-Id: Ia4a56ef679269755a3787408821c0cda6aec9420

10 years agoMark sockets on accept().
Sreeram Ramachandran [Tue, 13 May 2014 20:25:34 +0000 (13:25 -0700)]
Mark sockets on accept().

The kernel marks the netId into the accepted socket, so we just set the socket
owner's permission bits here in userspace.

We also check the permissions required by the network and return an error if
they are not satisfied. This avoids the "half-open" problem where an app listens
on all networks (interfaces) with bind(0), and receives an incoming connection
on a privileged interface that it can't send responses over.

(cherry picked from commit 920747a009efbb815465d980ec6a918531e74e9f)

Change-Id: I5d09be413cf720fbed905f96313b007997ada76c

10 years agoIntroduce fwmarkd: a service to set the fwmark of sockets.
Sreeram Ramachandran [Mon, 12 May 2014 04:04:03 +0000 (21:04 -0700)]
Introduce fwmarkd: a service to set the fwmark of sockets.

At connect(), mark sockets with the default network's netId.

(cherry picked from commit 361154d38016ebeaabf1bb75534dabbacf5de5fa)

Change-Id: Ib6198e19dbc306521a26fcecfdf6e8424d163fc9

10 years agoRemove redundant cache deletion.
Sreeram Ramachandran [Wed, 14 May 2014 15:36:26 +0000 (08:36 -0700)]
Remove redundant cache deletion.

This was added in http://ag/465643 as part of the merge from
master-multinetwork-dev to master, but was unnecessary, since it was already
added to NetworkController.cpp in http://ag/465593.

Change-Id: Ic9a56a5276ca6d58cf5fec60f89f30c2285aa35e

10 years agoInitialize mDefaultNetId.
Sreeram Ramachandran [Wed, 14 May 2014 15:31:55 +0000 (08:31 -0700)]
Initialize mDefaultNetId.

This was accidentally dropped in the merge from master-multinetwork-dev to
master, in http://ag/465644.

Change-Id: I0699604923477e6b19dfc8c70a84c50a79fe3d72

10 years agomerge in master-release history after reset to 3ced06906759b3ce252e114fcc9c98fa36228911
The Android Automerger [Wed, 14 May 2014 12:51:47 +0000 (05:51 -0700)]
merge in master-release history after reset to 3ced06906759b3ce252e114fcc9c98fa36228911

10 years agoAddress TODO to uncomment _resolv_delete_cache_for_net.
Lorenzo Colitti [Wed, 14 May 2014 11:44:46 +0000 (04:44 -0700)]
Address TODO to uncomment _resolv_delete_cache_for_net.

Change-Id: I581e6f2afaac25db04a87ac70703a02a669b5edf

10 years agoRefactor the fwmark stuff to use an explicit union of bit-fields.
Sreeram Ramachandran [Mon, 12 May 2014 03:29:49 +0000 (20:29 -0700)]
Refactor the fwmark stuff to use an explicit union of bit-fields.

This is a pure refactor. There's no effect on any functionality.

Change-Id: I99d1f3fb76781cf84f67c2dff44eaf3a2cf50a9f

10 years agoSeparate network and interface addition/removal netd APIs.
Paul Jensen [Mon, 28 Apr 2014 14:35:51 +0000 (10:35 -0400)]
Separate network and interface addition/removal netd APIs.
This should facilitate stacked interfaces (i.e. clatd).

Change-Id: Ib3e7a4d3847ef6ec4449451f6da42e75959baa4f

10 years agoIgnore failure when adding directly-connected routes to the main table.
Sreeram Ramachandran [Thu, 24 Apr 2014 23:23:35 +0000 (16:23 -0700)]
Ignore failure when adding directly-connected routes to the main table.

Change-Id: I12f65cdfbe2285820bd24b047f794ec9b9b5110f

10 years agoFixes for stupid mistakes (by me).
Sreeram Ramachandran [Thu, 24 Apr 2014 22:55:26 +0000 (15:55 -0700)]
Fixes for stupid mistakes (by me).

+ Only remove netId/permission after doing everything that references them.
+ Return success/failure correctly based on return value of fork/exec.

Conflicts:
NetworkController.cpp

Change-Id: Iddb8ccdffc104ffed1058ecc2421006beebd568d

10 years agoAdd directly-connected routes to the main table.
Sreeram Ramachandran [Wed, 16 Apr 2014 19:32:18 +0000 (12:32 -0700)]
Add directly-connected routes to the main table.

Change-Id: I545555d273ea9d321eab08fef12a32ca17e33dff

10 years agoUse proper socket mark for DNS resolution.
Paul Jensen [Thu, 17 Apr 2014 21:25:43 +0000 (17:25 -0400)]
Use proper socket mark for DNS resolution.

Change-Id: I531ff0fbce6e7172b82bc2d4c7406a324603eb8a

10 years agonetd: Accept NetId instead of interface name in DNS resolver commands.
Paul Jensen [Thu, 10 Apr 2014 18:57:54 +0000 (14:57 -0400)]
netd: Accept NetId instead of interface name in DNS resolver commands.

Conflicts:
DnsProxyListener.cpp
NetworkController.cpp
NetworkController.h

Change-Id: Ic82b73de6f50d39d56c5e1a32f5b1f3ebb80bb7d

10 years agoWhen deleteing a network also delete the resolver cache for that
Paul Jensen [Thu, 17 Apr 2014 20:05:35 +0000 (16:05 -0400)]
When deleteing a network also delete the resolver cache for that
network.

Change-Id: I99d058bafea5de743e56075dbed74031da4df63f

10 years agoCosmetic: Move logic from CommandListener into NetworkController.
Sreeram Ramachandran [Fri, 18 Apr 2014 16:49:13 +0000 (09:49 -0700)]
Cosmetic: Move logic from CommandListener into NetworkController.

CommandListener should just unmarshal params, and delegate all functional logic
to NetworkController (or other such classes). So, for example, if you call
destroyNetwork() directly from a unit test, you should get the same effect as if
you sent a "network destroy" command to CommandListener.

(cherry picked from commit f7743bf18672d654e79565e85c7d3770e2f0f26c)

Change-Id: Ic61ae9141e2eea95394a3a38e30a72fe964cdc81

10 years agoUpdate the "lookup main" rule to include a fwmark clause.
Sreeram Ramachandran [Wed, 16 Apr 2014 19:08:05 +0000 (12:08 -0700)]
Update the "lookup main" rule to include a fwmark clause.

If a packet is marked with a non-zero NetId, and doesn't find a route in its
per-network table, it will now not match the main table rule, and so will
fallthrough to the "unreachable" rule, resulting in ENETUNREACH, as desired.

If a packet has a zero NetId (e.g.: sent on an unconnected UDP socket), it will
find the "default network" rule first, which should have a default route, so it
will never need to fall through any further to the main table.

This makes the main table effectively unused for all normal routing lookups.

Only the kernel will still use this table, when trying to find a directly
connected route to validate the nexthop when a route is added anywhere.

(cherry picked from commit 4594dbba433dadba953c1c7b43fdd99e77fb1f2b)

Change-Id: Ib0784ff0848854be0575c64a59bbd0a4d3bf93e0

10 years agoFlush (delete) routing tables when destroying a network.
Sreeram Ramachandran [Tue, 15 Apr 2014 21:28:55 +0000 (14:28 -0700)]
Flush (delete) routing tables when destroying a network.

(cherry picked from commit 7ee2c3fe24f9a643584ddf5f759a7acb73e35e8d)

Change-Id: I1b222b474b1ae7a551250f8f02d7900c493b5b16

10 years agoImplement the "network route add/remove" API.
Sreeram Ramachandran [Tue, 15 Apr 2014 21:23:08 +0000 (14:23 -0700)]
Implement the "network route add/remove" API.

(cherry picked from commit 909c52248a4ad832548c5feb5e9a58323e30ab7b)

Change-Id: Idb09b0c22a3a519dda232995ced406e470ab9768

10 years agoImplement network default set/clear.
Sreeram Ramachandran [Fri, 11 Apr 2014 03:35:04 +0000 (20:35 -0700)]
Implement network default set/clear.

(cherry picked from commit 4cc7df247a7ec67da3b5edfb9356077fbbf0150c)

Change-Id: Ib35d54816884c6a6ba28231c9b1f54e362d1d16a

10 years agoImplement permissions set/clear for both networks and users.
Sreeram Ramachandran [Fri, 11 Apr 2014 02:58:06 +0000 (19:58 -0700)]
Implement permissions set/clear for both networks and users.

(cherry picked from commit 47a0fa0ad402704b639fbc2868c55adc432bb6ea)

Change-Id: Ibb71025e1e2c72bd300fb7379d5ab54da4a6982e

10 years agoMove sprintf statements to getRouteTableForInterface.
Lorenzo Colitti [Fri, 11 Apr 2014 09:26:17 +0000 (18:26 +0900)]
Move sprintf statements to getRouteTableForInterface.

(cherry picked from commit b45648ad5902e53f433615ab1a0268927b6a328e)

Change-Id: Ie0b2c3e3688285068b70e96d1153c0b105548a00

10 years agoCleanup: Minor style fixes.
Sreeram Ramachandran [Fri, 11 Apr 2014 02:37:59 +0000 (19:37 -0700)]
Cleanup: Minor style fixes.

(cherry picked from commit 49d905456fd6cf730abdddb49df84d6032b0a419)

Change-Id: I199447f03ce33d79007e62e23ccf683ed4249f97

10 years agoSet kernel proc files for fwmark reflection and table numbers for RAs.
Sreeram Ramachandran [Thu, 10 Apr 2014 19:10:24 +0000 (12:10 -0700)]
Set kernel proc files for fwmark reflection and table numbers for RAs.

(cherry picked from commit 75992274574e91c9a17aad5b60f0c2b710cd31b9)

Change-Id: I5f0d759cb9b8590555af7f5503f00d3e455ece54

10 years agoImplement network create/destroy.
Sreeram Ramachandran [Mon, 7 Apr 2014 21:10:04 +0000 (14:10 -0700)]
Implement network create/destroy.

(cherry picked from commit 382fc20107aa38cca062f10b4bc05c47b6c7f191)

Change-Id: Id5f8df447d812c8e8cf03addbb5e70abdcdfceb9

10 years agoIntroduce Netd APIs for multinetworks.
Sreeram Ramachandran [Thu, 27 Mar 2014 01:33:47 +0000 (18:33 -0700)]
Introduce Netd APIs for multinetworks.

Just stubs for now. Implementation will follow in subsequent CLs.

Change-Id: I10a2e4aca594c10a26d58afb4c250141386d3f0f
(cherry picked from commit 0d5146bed37b4e5b6909617e5f958a66bfee1e48)

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Tue, 13 May 2014 12:51:15 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Mon, 12 May 2014 12:50:19 +0000 (05:50 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Sun, 11 May 2014 12:50:08 +0000 (05:50 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Sat, 10 May 2014 12:51:26 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Thu, 8 May 2014 12:51:02 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Wed, 7 May 2014 16:11:44 +0000 (09:11 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Wed, 7 May 2014 12:51:17 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Tue, 6 May 2014 12:51:02 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Mon, 5 May 2014 12:50:16 +0000 (05:50 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Sun, 4 May 2014 12:50:08 +0000 (05:50 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agomerge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c
The Android Automerger [Sat, 3 May 2014 12:51:48 +0000 (05:51 -0700)]
merge in master-release history after reset to 978d30d0e046c971b37a6fc20480615f1c55f55c

10 years agoam 551e5b47: am 553dc723: BandwidthController: validate interface / chain names
Nick Kralevich [Thu, 1 May 2014 22:41:29 +0000 (22:41 +0000)]
am 551e5b47: am 553dc723: BandwidthController: validate interface / chain names

* commit '551e5b47a21294cf775f8effbb6f2bf34c664164':
  BandwidthController: validate interface / chain names

10 years agoam 553dc723: BandwidthController: validate interface / chain names
Nick Kralevich [Thu, 1 May 2014 22:38:20 +0000 (22:38 +0000)]
am 553dc723: BandwidthController: validate interface / chain names

* commit '553dc723163798720bf59d452688ad0ae946b29e':
  BandwidthController: validate interface / chain names

10 years agoBandwidthController: validate interface / chain names
Nick Kralevich [Thu, 1 May 2014 20:10:45 +0000 (13:10 -0700)]
BandwidthController: validate interface / chain names

Only allow alphanumeric, dashes, underscores, or colons in
interface and chain names. First character must be alphanumeric.

Bug: 14320836
Bug: 14323009
Change-Id: Ieac729719d0f9038f60c7afcb327f17d292d6ca6
(cherry picked from commit 0b2b9021ee27af2449c433fa13ed5c57e55dd816)

10 years agoBandwidthController: validate interface / chain names
Nick Kralevich [Thu, 1 May 2014 20:10:45 +0000 (13:10 -0700)]
BandwidthController: validate interface / chain names

Only allow alphanumeric, dashes, underscores, or colons in
interface and chain names. First character must be alphanumeric.

Bug: 14320836
Bug: 14323009
Change-Id: Ieac729719d0f9038f60c7afcb327f17d292d6ca6

10 years agomerge in master-release history after reset to 202633d0aa99de903f57c8372cc72b7349ba38e4
The Android Automerger [Thu, 1 May 2014 12:51:32 +0000 (05:51 -0700)]
merge in master-release history after reset to 202633d0aa99de903f57c8372cc72b7349ba38e4

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Wed, 30 Apr 2014 12:51:31 +0000 (05:51 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agoam 47939704: am 428c861a: (-s ours) Merge klp-dev-plus-aosp into stage-aosp-master
Bill Yi [Wed, 30 Apr 2014 12:50:58 +0000 (12:50 +0000)]
am 47939704: am 428c861a: (-s ours) Merge klp-dev-plus-aosp into stage-aosp-master

* commit '479397047075e236af9b23848371aa302d95c213':

10 years agoam 428c861a: (-s ours) Merge klp-dev-plus-aosp into stage-aosp-master
Bill Yi [Wed, 30 Apr 2014 01:13:18 +0000 (01:13 +0000)]
am 428c861a: (-s ours) Merge klp-dev-plus-aosp into stage-aosp-master

* commit '428c861a8e8aed4aa3224bd8d18211c9e6ca1c64':

10 years agoMerge klp-dev-plus-aosp into stage-aosp-master
Bill Yi [Tue, 29 Apr 2014 22:30:33 +0000 (15:30 -0700)]
Merge klp-dev-plus-aosp into stage-aosp-master

Change-Id: I1c46e9613eb7638531b6abffee43ffc94b116018

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Tue, 29 Apr 2014 12:51:18 +0000 (05:51 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Mon, 28 Apr 2014 12:49:59 +0000 (05:49 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Sun, 27 Apr 2014 12:50:04 +0000 (05:50 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Sat, 26 Apr 2014 12:52:53 +0000 (05:52 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agomerge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c
The Android Automerger [Thu, 24 Apr 2014 12:53:14 +0000 (05:53 -0700)]
merge in master-release history after reset to 4c2b869a3a30b257acce46d470e92e835a9eb82c

10 years agomerge in master-release history after reset to master
The Android Automerger [Wed, 23 Apr 2014 12:51:33 +0000 (05:51 -0700)]
merge in master-release history after reset to master

10 years agoam e4f22d3c: am 6aac1ccd: Merge "system: netd: prevent infinite loop"
Robert Greenwalt [Tue, 22 Apr 2014 21:43:01 +0000 (21:43 +0000)]
am e4f22d3c: am 6aac1ccd: Merge "system: netd: prevent infinite loop"

* commit 'e4f22d3cfc4f8826d27e81f9a87d653ef505b5b7':
  system: netd: prevent infinite loop

10 years agoam 6aac1ccd: Merge "system: netd: prevent infinite loop"
Robert Greenwalt [Tue, 22 Apr 2014 21:36:41 +0000 (21:36 +0000)]
am 6aac1ccd: Merge "system: netd: prevent infinite loop"

* commit '6aac1ccd09d590b014566b4000e7f908cc11e9de':
  system: netd: prevent infinite loop

10 years agoMerge "system: netd: prevent infinite loop"
Robert Greenwalt [Tue, 22 Apr 2014 20:51:58 +0000 (20:51 +0000)]
Merge "system: netd: prevent infinite loop"