SDN-IP will bring the onos-app-config bundle for now, because we need to make
sure this reads the config before SDN-IP activates.
SDN-IP won't depend on proxyarp and it will be up to the user to ensure this
is loaded.
Change-Id: I5add6294e51ee7f41c943f7862055dc41c7629ac
Make constructors of sub-types of Criterion package private for
limiting instantiation only from static factory methods in Criteria
Change-Id: I1fb1e9d003288a778a49e758549a92b66bf3cfdf
- Any files created in 2014 and modified in 2015 got a copyright of
2014-2015
- Used canonical form of 2014-2015 to be inclusive of extra years.
Some files had 2014,2015
Change-Id: If9a133618873e4000b8f10299bde7c870eb1fbd5
There is no physical gateway in SDN network.
However a host needs a gateway when it tries to communicate with a remote host.
So we designed a virtual gateway for SDN network.
The virtual gateway can have multiple IP addresses.
Each IP address is used as the default gateway address of an IP prefix.
We only configure one MAC address to the virtual gateway.
You can choose any MAC address from the BGP speakers as the virtual gateway MAC address.
We configure this MAC address staticly in the sdnip.json configuration file.
Change-Id: I2a72bef797fc55d25bb5473e8fca624ad659e1d1
This module can handle 3 cases:
(1) one host wants to talk to another host, both two hosts are in SDN network.
(2) one host in SDN network wants to talk to another host in Internet.
(3) one host from Internet wants to talk to another host in SDN network.
In all cases, we use MultiPointToSinglePointIntent.
Change-Id: I80dd954bd608e52b45b993f3c27e67636a7105d9
- Each connectivity intent now has only one constructor
- Intent constructors are now private for leaf classes and
protected for classes that can be derived from
- Each intent class has a Builder class that accumulates
parameters for intent creation
- Each intent class has a public static builder() method
to create a builder
- Each Builder class has a build() method to create the
intent from the accumulated parameters
- Added keys to a few intent types that were missing them
- Tightened up usage of checkNotNull(), taking advantage of
the return value to save some lines of code
- Modified callers to use the builders instead of directly
calling the constructors
Change-Id: I713185d5ecbadbf51f87ef7f68fec41102106c78
* Use intent priority when installing multipoint-to-singlepoint intents:
the loinger the routing prefix match, the higher the intent priority.
This is needed to perform correctly the equivalent of longest prefix
match in the switch.
* Use intent priority for the point-to-point intents: the priority for
this BGP-related control traffic is higher than the
multipoint-to-singlepoint intents.
* Use the appropriate Key when installing multipoint-to-singlepoint intents.
The key is the network (destination routing) prefix address represented
as a string.
Change-Id: Ic489a1e5f31adceb4c9d1dcea52293a2b3db0b79
Note: There was a change that adds a DROP action to
a traffic treatment if there are no other actions present.
To get a traffic treatment without the drop rule, use
emptyTreatment()
Change-Id: I1f23ed5e1fa7519eb94fcafa85facbad815d5e9c
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