Added a number of app.xml files for built-in apps.
Added ability to install & activate in one command.
Change-Id: I3fa5fa487ef76d9fe3da4d6dce8045d538cba423
This allows the configuration to be used from multiple applications.
* The class that reads the configuration file is now a service so that
config can be consumed by components in other bundles.
* Name of config reader classes has been generalized to RoutingConfigService
* All config has been added to RoutingConfigService, instead of having
two service interfaces like we did previously
Change-Id: Iaec9daf0f5b72abe2d6709fb75188d6d81947478
The main goal of this is to allow routing code to be used by multiple
applications.
Changes include:
* Created an onos-app-routing bundle and moved BGP code and routing code
into it.
* Created an onos-app-routing-api bundle as a common API bundle between
onos-app-routing and onos-app-sdnip, to prevent circular dependencies.
* Moved API classes into onos-app-routing-api bundle.
* Made Router and BgpSessionManager into OSGi components. This is not quite
clean, because there is still a chain of start() method calls from SdnIp
through to BgpSessionManager to preserve startup order. This should be
revisted so components can be started using activate()
* Created BgpService and RoutingService APIs to glue different components
together.
* Many unit test changes. A lot of the previous unit tests spanned the
Router and IntentSynchronizer classes, but this is not possible any more
since these classes are in different bundles. I had to rewrite some of
these tests so that each unit test class only tests one real class. A
nice side-effect is that the tests are now simpler because each test
tests less functionality.
* Removed SdnIp test seeing as it doesn't run automatically, was already
broken and has been largely superseded by other unit tests and the nightly
functional tests.
Change-Id: I70ecf5391aa353e99e7cdcf7ed38a530c87571bb
* IntentSynchronizer implements a more generalized FibListener interface
* Updates to the FIB are signalled with FibUpdate to any FibListeners
* generateRouteIntent logic has been pushed down into the IntentSynchronizer
Change-Id: I6f0ccfd52ee4e16ce9974af5ee549d4ede6c2d0e
Previously, when checking the winning BGP routes, we expect-and-wait until
the size of the table with the winning routes has certain size, and
then we verify whether it contains a particular value.
This is error-prone and time-sensitive. For example, if we are testing
whether a particular route from one BGP peer is replaced with the
same route from another BGP peer, the test might fail because the
table size doesn't change.
Modified the unit test to expect-and-wait until the expected route
is received.
Also, fixed some of the paragraph tags in some of the Javadocs.
Change-Id: Ia96dc7c412e78bbc9279dd935dec6919096adeb3
* Fix a bug in the storing, handling and verification of the AS numbers
with 4 octet AS capability is used.
* Add an unit test to test the decoding and parsing of supported
BGP Capabilities: Multiprotocol Extensions AFI/SAFI, and 4 octet AS.
* Minor refactoring of the BGP unit test framework.
Change-Id: I474b356bc00369c307ac0c5c214b065c1cc0c52c
Moved the local and remote BGP session info to a separate class BgpSessionInfo.
No functional changes.
Also, removed methods TestBgpPeerChannelHandler.prepareBgpKeepalive(),
prepareBgpNotification() and prepareBgpMessage() from the unit tests.
Instead, use the corresponding methods in the BGP implementation itself
to generate the BGP messages.
Change-Id: I7f4b6ad4f6995c242cd8a9848ea527b1fcac9c11
* Expose NetworkConfigReader as a service - NetworkConfigService
* Add reference within SdnIp to NetworkConfigService
This fixes bug ONOS-735
Change-Id: I85cdd0ce0a4f6293e8a5633bddd140a23ecddc10
SDN-IP can now support peering and routing between hosts that are connected
on VLANs.
Changes include:
* Updated NetworkConfigReader app to read (optional) VLAN configuration
* Updated VlanId to support the 'VLAN present' value - in a match this means
that a VLAN tag must be present, but it can contain any value.
* Updated SDN-IP to set destination VLAN tag values if appropriate
* Updated FlowModBuilder and FlowEntryBuilder to support 'VLAN present' value
* Slew of test updates.
Change-Id: Ief48cede5c1fd50e1efa851da5a97fb4a8edda29
[WARNING] /Users/rascov/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/SuppressionRulesStore.java:88: warning: no description for @throws
[WARNING] /Users/rascov/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/SuppressionRulesStore.java:146: warning: no description for @throws
[WARNING] /Users/rascov/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java:706: warning: no @param for ctx
[WARNING] /Users/rascov/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java:751: warning: no @param for ctx
Change-Id: Iae4d1826249e3612e1a16d1a9eeaebdc4c032f35
* The routing entries as received from BGP can be either IPv4 or IPv6
* The CLI prints the IPv4 and IPv6 routes
* The BGP peering is still over IPv4, so configuration-wise the IPv6
routes from the eBGP peers have to be configured to use the IPv4 peering.
* The integration/testing with the IPv6 Network Discovery Protocol is not
done yet.
* The integration/testing with IPv6 intents is not done yet.
Also:
* Moved nested class BgpSessionManager.BgpRouteSelector out of the
BgpSessionManager class.
* Code cleanup.
Change-Id: I9f2dbe4395a72d353bbf215a8a14b01b53c3423f
BGP UPDATE attributes: MP_REACH_NLRI and MP_UNREACH_NLRI (RFC 4760).
Note: currently, the IPv6 NLRI is decoded, but it not used.
This work is in the context of ONOS-422.
Change-Id: Ia61b94dedfe0b1a7d7f563e805a3086f56d4da03
4 Octet AS in AS_PATH is parsed.
Now BGP can establish 4 Octet AS Path enabled peering with neighbor.
Change-Id: Ibb72e8037554928584ccafe6a14b82ffaca7e2cd
BGP OPEN Multiprotocol Extensions Capabilities (RFC 4760).
The corresponding BGP UPDATE decoding is not done yet, hence for now
we don't include any Capabilities in the BGP OPEN message originated by us.
This work is in the context of ONOS-422.
Change-Id: I8e1c8838adc189aa32a8edf98be976d90fc4ad42
* Resolves ONOS-476
* Moved the BGP message-specific processing from class BgpSession
to per-message type classes: BgpKeepalive, BgpNotification,
BgpOpen, BgpUpdate
* Minor modifications in some of the methods or BGP-specific API
to accomodate the above change.
No functional changes.
Change-Id: I95df128fa31c60397a279aaca25a487b7991a6e1
unit test. This reduces the typical run time for the unit tests from
2-3 seconds to 0.6-0.7 seconds.
Change-Id: I7a31f837da5838c20d2b43de23de77d378e9f900
* Updated/cleanup the "routes" and "bgp-rotues" commands output formatting
* Fixed/updated the help description for the "routes" and "bgp-routes"
* Added optional argument "-n <nbr>" or "-neighbor <nbr>" argument
to the "bgp-routes" command to print the routes from a single BGP neighbor
Change-Id: I65afd00772bc8e097468ae2ed0dd3fd41bd27f25