Loadbalancer class

Change-Id: Id787834fcfa6d723bf843a5cbcc41d057973935b
Generate the haproxy configuration

Change-Id: I02053792b7e133edf9a7fe667d92dcdba154089d
Fixing test case, adding default xml config and enable sub_node
in ip_perms.
moving test_integration from flaky to non-flaky test suite.

Change-Id: I86c7284485d39e90450d34c1e57622c2f521546e
Make Uve test cases more reliable
Make test_uve and test_vrouter_uve non-flaky
Change-Id: I5d68fb78d5901602bc12e80f4bc6371a050f1c17
Send program using vnc_api library in X-Conrail-Useragent header
in REST calls for identifying source of a change.

Change-Id: I81034621674d94b158a0c6302e11f1df0ac8a113
Adding verification for short flow reason.

Change-Id: I727a3e91cfe9c77351278d7eabce918f73670e46
Check the router object exists before adding interface

Before this fix the add_interface was called before
checking that the router was present.

Change-Id: I091b2cab339fd8dd9df102dcd22826bcabe109a7
Fix some traceback when restarting schema

Change-Id: I64f1c2eadb84115c82a361080c1cf51d1424a20b
Extra dhcp options on port

Change-Id: Ifcea4adc4e7e75cc1026d4b21ab3a6dc7ee00082
Minor cleanup of pkt/test/SConscript

Change-Id: I3988cb2cab97f5285f32adadf135f1ea55b61240
Set dest_vn in route to floating-ip VN

1. Set dest_vn in route for floating-ip to VN of borrowed VN
2. Add UT

Change-Id: I401f5a2c7761f6c42556ee873c27faba0df6a55f
Change to derive flow information from route

Changes to get vn-name, sg-id-list and route-prefix-len from the route
This is phase-1 of changes to support handling of route-add in flow

Change-Id: Ibccf0863410913dc92d4a0b2c705b2dbb06016d5
Merge "Check the router object exists before adding interface"
Merge "Fix some traceback when restarting schema"
Merge "Send program using vnc_api library in X-Conrail-Useragent header in REST calls for identifying source of a change."
Merge "Extra dhcp options on port"
[SVC scheduler] Update scheduler code to use new UVEs fields name

Change-Id: Ib7fc6fd45dd02dea941095dba891054d0546bfda
Fix couple of concurrency issues in TCP library

TcpServer::AcceptHandlerInternal inserts the new session into the
SesesionMap, releases the mutex and checks if the session has been
closed. If so, it subsequently calls DeleteSession on the session.
This can result in a duplicate delete if the application deletes
the session (by calling DeleteSession or ClearSessions) after the
mutex is released and also returns false from AcceptSession.

Fix is to not insert the session into SessionMap if AcceptSession
returns false.  Just need to make sure that we close the session.
Also ensure that we close the session if we are unable to make it
non-blocking.

TcpServer::ConnectHandler inserts the session into the SesesionMap,
releases the mutex and checks if the session has been closed.  If
so, it erases it from the SessionMap using the iterator returned
by the insert operation.  The iterator may not be valid anymore if
the application deletes the session (by calling DeleteSession or
ClearSessions) after the mutex is released.

Fix is to not use the iterator and instead erase from the SessionMap
by finding the session again.

Change-Id: I6c1754e75e46e29b37fd64fd89a12ffd572fa97e
Make bgp_server_test more robust

Terminate the BgpSessionManager when BgpServer is destroyed instead
of calling ClearSessions directly from ~BgpSessionManager. Doing so
takes care of a deadlock wherein ClearSessions could get called when
a session is being destroyed from a call to DeleteSession.

Make sure that BgpSessionManager does not accept any sessions after
it has called ClearSessions.  Otherwise those sessions get added to
the SessionSet and prevent BgpSessionManager from getting deleted.

Do not delete a BgpPeer till the state machine WorkQueue has been
drained completely.  This prevents an EvTcpDleteSession event from
getting deleted without being processed, hence preventing a leak of
the BgpSession.  The session would otherwise get deleted only when
the BgpSessionManager itself is terminated.

Fix an issue in state machine wherein a BgpOpen received on a stale
session caused a FSM error. A BgpOpen should cause a FSM error only
if it's received on the session currently being used by Established
peer.

Add a few more tests to bgp_server_test. Cleanup to consistently use
counts >= 3 in all tests that wait for specific counters to go up.

Sprinkle const in order make WorkQueue::IsQueueEmpty a const method.

Change-Id: Id1761667d68fe293ab0ddc099db1f508f8504769
Merge "Make Uve test cases more reliable Make test_uve and test_vrouter_uve non-flaky Change-Id: I5d68fb78d5901602bc12e80f4bc6371a050f1c17"