Derive ip family from prefix while provisioning static routes

Change-Id: I95a9bb9f5a4200ce60e26ac0300f893d474ada0c
Schema change to link loadbalancer pool to VMI

Add a link from loadbalancer pool to virtual machine interface(VMI).
VMI is linked to a logical interface of a physical router where the
configuration is stored.

Change-Id: I1f708e12ad0bef87c33da34b189d1c86574c4b81
Closes-Bug: #1381775
If the API client updates a network object with subnets and does not send a subnet_uuid, we were allocating a new UUID. If the subnet already exists, we should reuse the subnet_uuid. Now, we read from cassandra before generating a new UUID.

Change-Id: I13426663c8a2a8e79fbf170dffb81c726506cee1
Closes-Bug: 1381779
(cherry picked from commit c2f71af5f2e9a6f31ce65e48c0e4a4c62e82f0c8)
bug 1381704 - update cassandra db with sequence when upgrading from earlier version

Change-Id: Ic39a4e1fc46c5259f3a5de69e778ac1352dc034d
Adding skeleton for a new daemon: prc-manager

The name stands for 'physical router configuration manager'.
It listens to rabbit-mq updates from API server. When messages are received, it reads corresponding information from cassandra. It manages configuration for physical routers (MX only for now) using netconf utility.

Change-Id: I36ac5f8999f8f921f4ecec1bc87d4c7742ed88df
Catch PermissionDenied exception on security_group_update so that we can return proper error when sg rule quota is exceeded.

Change-Id: I1ebfe45a50521653ec92f115e12b692cc554dec4
Closes-Bug: 1365463
Fix circular route re-origination bug with transit VN

Problem:

When a service is applied between a VN and a transit VN, routes from the
VN that are re-originated into the transit VN as ServiceChain routes get
re-originated again as ServiceChain routes into the regular VN.

Cause:

Implementation prior to transit VN used to ignore routes that did belong
to the destination VN of the service chain.  Code changes for transit VN
functionality relaxed this check, but did not cover the case where route
belongs to the source VN.

Fix:

Add check to ignore routes from source VN.

Change-Id: Ifdff8e828f0d4a9bc20ab055e0e9206d2cfd347a
Partial-Bug: 1365277
Add vrouter-instance ServiceInstanceType

Change-Id: Iab21f83743e100cd89471ee03ccba6110abbe551
Cleanup and refactor code in service_chain_test.cc

Following changes have been implemented:

- Use using instead of using namespace
- Add and use helper methods for creating peers and configuring chains
- Add and use helper methods for verfification of routes and paths
- Consolidate use of task_util::WaitForIdle to a few helper methods

Change-Id: I33ccdb0b988fec768bb5c44b1de5d5c91fdd8bb3
Schema changes for VCPE feature.
-Define an object to represent subnet
-Define a link from this subnet object to virtual-machine-interface object

Change-Id: I2fdc56d4be68bec32f3b2f45ba735e9efea1f733
Bug:#1380771 Adding the load balancer session persistence parameters fro Service Instance's Virtual ip. The session persistense type and name are written to haproxy configuration file in the backend section

Change-Id: I44a2b5c750f2ab62221d5bd43925df3de2dc85cd
Export underlay source port as 0 when encapsulation type is MPLSoGRE.

In vrouter underlay source port calculation is done for each flow record irrespective of its encap type. Agent instead of exporting this value (given by vrouter) as-is, should send the value as 0 when encap type is MPLSoGRE

Add unit test case to verify this.

Change-Id: I2c582d83ba2dafdf65b351a374c8f87d4517464e
Closes-Bug: #1382355
Run config unit tests from scons

Currently they have been added to flaky-tests and will be promoted
once we have it run successfully consistently. The workflow is to have
 * scons controller/src/api-lib
 * scons controller/src/config/api-server
 * scons controller/src/config/schema-transformer
run the unit tests. A future commit will try to have this run from
within source using ./run_tests.sh
Also add explicit list of tests in common as test_utils/test_common are helpers instead of tests

Change-Id: I5b72c6a18e8be9bcdf6d68146b9c220a9196746e
Rename prc-manager to device-manager

Change-Id: I8de2095779faba4efa630b77f383e35146de3a53
Display description from the NodeStatusUve when service is in
initializing state so that user can figure out the reason when
using contrail-status. Changed process info library and pysandesh
to set the appropriate description when a process's state is
non functional.
Closes-Bug: #1381631

Change-Id: Id530470630c5777873aa4b7718c0b1d3eb29925b
Change calls to update_subnet_uuid with new name.

Closes-Bug: #1383101

Change-Id: I3e810b07d620142556ed2340a730d63cd37a3276
The dependent route list maintained by path_preference_module for a given V4 IP/prefix_len should have only V4 routes. The agent crash as reported by bug 1382378 happened because we were expecting only v4 routes in the dependent list and the list had v6 routes as well.
Added UT to ensure that dependent list has only v4 routes.
Closes-Bug: #1382378

Change-Id: I03a26fe06aa82e02821973989680e6e1ddd524e0
Ensures that permissions are set when _http_put_common

Without this patch permissions can be lost during
update operations.

Change-Id: I9c7488b4be00d4a4a960cdf8330dd3abd8454215
Closes-bug: #1378376
Making file names consistent.
There are following sets of changes:
1. Changing module (id) names to be consistent with service name changes.
2. Making svc-monitor and schema-transformer file names consistent
3. Make contrail-database file names consistent with over contrail file
naming convention.
4. Deletes unnecessary files

This commit requires changes in contrail-controller, contrail-packaging,
contrail-packages, contrail-provisioning, contrail-puppet and
contrail-test repos.

Update aftre rebase

Change-Id: If79620e04d772fcc20c61961189b2efc57fac38d
Closes-PR: 1365845
Closes-PR: 1355712
Allow multiple xmpp client connections from same IP

Motivation:

A slightly different personality of the vRouter agent is used to manage
physical routers such as TOR switches and DC Gateways. In this scenario
there are multiple instances of agent process running on a given server.
Hence it's necessary for the xmpp server to allow multiple connections
from the same IP address.

Implementation:

The ConnectionMap in the XmppServer was already keyed by Endpoint. The
Endpoint is now initialized to the IP address + port instead of always
setting the port to 0. This allows multiple XmppServerConnections from
the same IP to be in the ConnectionMap.

The ConnectionEndpointMap in in the XmppServer used to be keyed by IP
address. Since an IP address no longer uniquely identifies an Endpoint
the map is now keyed by the Endpoint name.  The Endpoint name is known
when the xmpp server receives an Open message from the client.

Associate the XmppServerConnection with an XmppConnectionEndpoint based
on the endpoint name when an Open message is received.  If the endpoint
already has another connection associated with it, the new connection is
terminated. The association is cleared when the XmppServerConnection is
being deleted via LifetimeManager.

Since an endpoint name conflict can only be detected much later in the
life cycle of an XmppServerConnection, XmppServer::DequeueConnection is
only used to detect duplicate IP address + port combination. This should
not happen normally, but we still have a paranoid check.

Testing:

Parametrize tests in bgp_xmpp_basic_test so that all tests are run with
agents that have unique IPs and agents that the same IP.

Add a couple more tests to bgp_xmpp_basic_test to check that duplicate
endpoint names are handled correctly.  These tests are paramterized in
the same manner.

Change-Id: Ifb6a2d62fc83889e1da08afde7c9bf01cbb392c9