Additional configuration parameters that can be configured in the configuration file (org.onosproject.fwd.ReactiveForwarding.cfg),
that determine application behavior:
- packetOutOfppTable - application will use OFPP_TABLE port in PacketOut message, sending packet back to the OpenFlow pipeline, instead of using switch port
- flowTimeout - configuring reactively installed flow timeout
- flowPriority - configuring reactively installed flow priority
- matchDstMacOnly - reactively installed flows will match only destination MAC address - behavior as legacy L2 switches. This options overrides all other options below.
- matchVlanId - reactively installed flows will match default condition with additionally with VLAN ID field
- matchIpv4Address - reactively installed flows will match default conditions, plus IPv4 address and Protocol field
- matchIpv4Dscp - reactively installed flows will match default condition, IPv4 + with IPv4 DSCP and ECN fields (need matchIPv4Address enabled)
- matchIpv6Address - reactively installed flows will match default condition with IPv6 address and NextHeader field
- matchIpv6FlowLabel - reactively installed flows will match default condition with IPv6 address and IPv6 Flow Label (need matchIPv6Address enabled)
- matchTcpUdpPorts - reactively installed flows will match default condition with IPv4 or IPv6 address and TCP/UDP ports (need matchIPv4Address or matchIPv6Address enabled)
- matchIcmpFields - reactively installed flows will match default condition with IPv4 or IPv6 address and ICMP type and code fields (need matchIPv4Address or matchIPv6Address enabled)
Change-Id: Ieef67a1a12f6341d4de3b07e1226affec66d361a
* adding total to log
* using local devices and keys
* added delay between cycles
* print time if cycle is delayed
Change-Id: I16a3c041dd2e920695ab782d22fe6db8abad7da8
Problem is due to two packet requests from different services
for the same selector resulting in the same flow rule.
Since these rules where the same, only one ended up on the data plane,
but sadly only the first request made it into the flow service meaning
that in cases where what was in the flow service does not match what is
on the dataplane resulting in a PENDING_ADD situation.
Change-Id: I4c03e753be6e198e04f0b5263a2aa8cf2edc51e1
Added BGP tunnelling and received routes.
Added pushing groups and can now ping through the router.
Change-Id: I21a265bd72e40fc430bd392201fadccbdd67be94
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
Change-Id: Ib977f4cf9a59ddec360072891fd803c6f9ee84f1
Injecting optical device annotations and ports works for multi-instance (ONOS-870).
Change-Id: Icdde16ef72fc4e47eec7213250b04902083f0537
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
Work toward ONOS-509
The following match conditions are added/implemented:
- UDP_SRC, UDP_DST
- SCTP_SRC, SCTP_DST
- ICMPV4_TYPE, ICMPV4_CODE
- IPV6_FLABEL
- IPV6_ND_TARGET
- IPV6_ND_SLL
- IPV6_ND_TLL
Also:
* Renamed method
TrafficSelector.Builder.matchInport(PortNumber port)
to
TrafficSelector.Builder.matchInPort(PortNumber port)
(for consistency with the corresponding method(s) elsewhere)
* Reordered the code for some of the existing matching conditions
to follow the order in the OpenFlow spec, so it is easier to
cross-reference such code.
* Added missing Javadoc
* Added few more Criterion.Type values as per OpenFlow spec 1.5.0
Change-Id: I7fc1656f32d8a7280c67d7827e4aa84528b0eafc
* 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
This prevents us duplicating code in each of the apps and allows us to manage
packet requests better in the future.
Change-Id: I5656b2f0f3cecd3e42fe7b4a0a5ab7cb6582bb25
Setting up bidirectional T-ports in OpticalPathProvisioner
Change-Id: I4e97b2eb53d3d4182aae9c98a227de982f492950
(cherry picked from commit d6843bed27c4b2b4e95984c99de3c54edcefc67f)
- Support for more T ports
- Addresses ONOS-440
Change-Id: Iafbe57b4797f272678696b8b2e46e5a6487e7428
(cherry picked from commit 6aba384469ce820c9e94f0f2991c4a84a691d4f8)