320 Commits

Author SHA1 Message Date
Ray Milkey
2da272b94e Removed deprecated classes/interfaces
IntentBatchLeaderEvent
IntentBatchListener
IntentBatchService

Change-Id: I712f0eb0b26d9bfaa820a14022c1dd30943fab27
2015-02-13 14:10:45 -08:00
Sho SHIMIZU
4931ee5dc6 Delete unnecessary semicolon
Change-Id: I2eaa4d900342a665f6dc4731a298b30a9ec40696
2015-02-13 14:10:41 -08:00
Brian O'Connor
03406a4702 IntentStore interface changes
Change-Id: Ifa8728fb4c7edcc6d58a5e071f7252493ab2a578
2015-02-13 14:07:52 -08:00
Ray Milkey
9d810f6bed Fix some JSON related deprecation and javadoc warnings
Change-Id: If39c0bbe578794c8308b24d9290e269bd14b9219
2015-02-13 20:28:06 +00:00
Kunihiro Ishiguro
9322445f11 Merge onos-app-proxyarp with onos-app-proxyndp.
Change-Id: I6e25c4575544e159ac9f7749fe07a742bfd6f748
2015-02-12 22:16:48 +00:00
Ray Milkey
7b3981b529 Fix Javadoc warnings
Change-Id: I2975b3d7bb581d5574969037e1f99401b94ef3dc
2015-02-12 09:15:44 -08:00
Jonathan Hart
d24fafbc7c Move BGP listen port configuration to BgpSessionManager component
Change-Id: I445bff180740fededacaa59441fc53332cc3d482
2015-02-11 18:48:47 -08:00
Jonathan Hart
41349e9b46 Moved BGP code and Router code into their own bundle.
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
2015-02-11 18:20:57 -08:00
alshabib
3a0e9f550e Added test code to test the flow subsystem performance
Change-Id: I1a7c68492760a63b7d092c3ca71e4964123c8aa7
2015-02-11 21:29:18 +00:00
Jonathan Hart
552e31f991 Create a formal interface between the RIB and FIB.
* 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
2015-02-11 05:43:24 +00:00
Kunihiro Ishiguro
f1bff5075a WIP: proxy NDP for IPv6.
ONOS-924

Need to implement test cases.

Change-Id: I86b0cb8c3c8d75f7276778e04c1a7166c9bb2f59
2015-02-05 08:58:39 +00:00
Pavlin Radoslavov
f8a0f6c2e4 Fix for bug ONOS-959: BgpSessionManagerTest unit test failure
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
2015-02-04 16:03:51 -08:00
Pavlin Radoslavov
320e6c97f8 Implement some of the missing Selector and Match Conditions
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
2015-02-03 14:40:08 +00:00
Pavlin Radoslavov
4b5acae6c4 ONOS-734 Add unit tests for 4 Octets AS numbers in SDN-IP
* 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
2015-01-29 17:29:37 +00:00
Pavlin Radoslavov
8a36ce35a6 ONOS-866: Refactor the storing and handling of BgpSession info.
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
2015-01-29 17:26:27 +00:00
Thomas Vachuska
9ea3e6f477 ONOS-841 Renaming ONOS threads to simplify profiling.
Change-Id: I83a96bd875a0af9f3b78c06a9f9107c093b8e64e
2015-01-23 16:34:22 -08:00
Ray Milkey
f25d1353d3 Fix Javadoc warnings
Change-Id: I857d8bd7d9fc0862f3c0097d3e65cbedfb997b0f
2015-01-23 15:47:00 -08:00
Ayaka Koshibe
8851ed97c7 Trim whitespaces before and after .cfg file arguments.
Change-Id: Iaf165b4e289075376deab806d3c7c15169e3dca7
2015-01-23 17:47:04 +00:00
Pavlin Radoslavov
492cc3ab10 Fix startup dependency between features onos-app-config and onos-app-sdnip:
* Expose NetworkConfigReader as a service - NetworkConfigService
 * Add reference within SdnIp to NetworkConfigService

This fixes bug ONOS-735

Change-Id: I85cdd0ce0a4f6293e8a5633bddd140a23ecddc10
2015-01-23 06:33:02 +00:00
Jonathan Hart
6cd2f3594b Implemented VLAN-to-VLAN routing support for SDN-IP.
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
2015-01-22 03:28:52 +00:00
Kunihiro Ishiguro
6e2ee15aa2 ONOS-783 Update PeerConnectivityManager to handle IPv6.
Change-Id: I0c8558cec2f7fa5f772cc126c6b74e5d4531676b
2015-01-21 18:02:48 +00:00
Jonathan Hart
43ae2933cb Updated SDN-IP config to support 64-bit port numbers.
Fixes ONOS-776.

Change-Id: I0629a140835cd3277eb362c1909b5b806c6fcec0
2015-01-20 11:08:20 -08:00
Jonathan Hart
3cfce8e3ac Moved default flows logic into the PacketManager.
This prevents us duplicating code in each of the apps and allows us to manage
packet requests better in the future.

Change-Id: I5656b2f0f3cecd3e42fe7b4a0a5ab7cb6582bb25
2015-01-16 00:26:30 +00:00
Brian O'Connor
025fb4486f Adding more T-ports to big topo
Setting up bidirectional T-ports in OpticalPathProvisioner

Change-Id: I4e97b2eb53d3d4182aae9c98a227de982f492950
(cherry picked from commit d6843bed27c4b2b4e95984c99de3c54edcefc67f)
2015-01-15 14:02:11 -08:00
Brian O'Connor
c7bdd8c7cc Improvements to OpticalPathProvisioner
- Support for more T ports
- Addresses ONOS-440

Change-Id: Iafbe57b4797f272678696b8b2e46e5a6487e7428
(cherry picked from commit 6aba384469ce820c9e94f0f2991c4a84a691d4f8)
2015-01-15 14:01:31 -08:00
Jonathan Hart
06ae79dfd0 Reactive forwarding apps should explicitly ask for packets they want to receive.
Previously we relied on the table-miss entry set up for OVS switches, but
this doesn't work for non-OVS switches 1.3 switches.

Fixes ONOS-661.

Change-Id: Ibc0aee09f304eaf240691a4d5d2f8765a5f8cdd5
2015-01-14 22:41:18 +00:00
Pavlin Radoslavov
0f8a1e45fb Count the Intent FAILED events.
This is work toward fixing ONOS-554

Change-Id: I6aced093c47459796d40e8bd839177c4db60d1e0
2015-01-14 22:39:28 +00:00
Brian O'Connor
8b6b172656 temporary NPE fix for ONOS-439
[Merged from onos-1.0]

Change-Id: I238ea24e1a4c4bebb40d132d060c418f5675f570
(cherry picked from commit f25a5115e901f1f3383ccb60af7ad48355c39ee2)
2015-01-13 22:47:14 +00:00
Jonathan Hart
e8600eb0c4 Handle packets that can't be deserialized properly.
Catch BufferUnderflowExceptions that occur while trying to deserialzed
Ethernet packet, and account for the fact that packets may not have been
deserialized correctly when using InboundPackets.

Addresses ONOS-605.

Change-Id: Ia7191e62a339125c9c4d3fe0cf63f9c33eb74cb5
2015-01-13 21:59:54 +00:00
Charles M.C. Chan
bc0e84dadf Fix javadoc warnings
[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
2015-01-13 23:59:06 +08:00
Pavlin Radoslavov
3a0a52e462 Added IPv6 routing support to SDN-IP, and integrated it with BGP:
* 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
2015-01-07 19:12:26 +00:00
Pavlin Radoslavov
2020eac8aa Reorder some of the import statements (onlab/onosproject) so they
are listed alphabetically.

No functional changes.

Change-Id: I38cd0b8a506675a8d054860d2934aebf276a7a6a
2015-01-06 17:26:10 -08:00
Pavlin Radoslavov
c7648ee53d Work toward IPv6 support in BGP: implement decoding of the
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
2015-01-07 01:02:20 +00:00
Kunihiro Ishiguro
d37c9cadab ONOS-506: IPv6 forwarding option for ReactiveForwarder.
org.onosproject.fwd.ReactiveForwarding.cfg
------------------------------------------
ipv6Forwarding = true

will enable IPv6 forwarding in ReactiveForwarder.

ONOS-506: Updates for the comment.

* ReactiveForwarding.java
Line 133: Make the comment to concrete Javadoc.
Line 134: Method is changed to static.
Line 141: Catch ClassCastException instead of generic Exception.

* org.onosproject.fwd.ReactiveForwarding.cfg
Line 3: Fix typo ;-).
Line 7: Add comment: the option affects both IPv4 and IPv6.

Change-Id: Ie7fdc7fc26c7d36b9633bfc828dffe27015214f7
2015-01-01 03:13:47 +09:00
Kunihiro Ishiguro
923d9d8104 4 Octet AS Path Capability is sent to neighbor.
4 Octet AS in AS_PATH is parsed.
Now BGP can establish 4 Octet AS Path enabled peering with neighbor.

Change-Id: Ibb72e8037554928584ccafe6a14b82ffaca7e2cd
2014-12-30 05:01:32 +09:00
Kunihiro Ishiguro
828245c5eb Store remote 4 octet AS path value.
Change-Id: Ifccc777c48392effb0ab86298115c9abb4fe5e48
2014-12-18 17:54:18 +09:00
Pavlin Radoslavov
278cdde308 Work toward IPv6 support in BGP: implement decoding/encoding of the
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
2014-12-16 23:26:28 +00:00
Pavlin Radoslavov
80f3e18c61 Refactor the BGP code in the SDN-IP application:
* 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
2014-12-15 21:44:26 +00:00
Pavlin Radoslavov
0af11c1ecf * Add unit tests for the BGP route preference comparison mechanism
This addresses ONOS-134
* Refactor existing BGP unit tests

Change-Id: Ia0ad7954632ec6b856d1a8a972f1837179121abb
2014-12-11 18:33:52 +00:00
Pavlin Radoslavov
64c1ed1f72 Renamed bgpRoutes field in Router class to ribTable.
No functional changes.

Change-Id: I1b5de1b93dc1264adfcd7c4cad9c2a315c1b8992
2014-12-10 18:10:55 -08:00
Jonathan Hart
b834920a2a Renamed SDN-IP test so it will be picked up by Surefire
Change-Id: I58cd3827fe0922f699c4044ff51beaced889a429
2014-12-10 19:31:42 +00:00
Pavlin Radoslavov
55b5f51d4d Refined the methods waiting for BGP routes in the BgpSessionManagerTest
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
2014-12-08 10:01:11 -08:00
Brian O'Connor
7f2e9bf19a bumping version to 1.1.0-SNAPSHOT
Change-Id: I35f10fa7ffab12365ad852f5253bc1f395282f9b
2014-12-04 23:45:40 -08:00
Brian O'Connor
5b29ebd309 Bumping version to 1.0.0
Change-Id: I0cdd1f64a9292c91af27b86e89bd8251b2c298f3
2014-12-04 21:54:26 -08:00
Brian O'Connor
0af6747f80 removing foo app
Change-Id: I876ffbf272aa8604febc85810b9495136192892a
2014-12-05 05:05:52 +00:00
Thomas Vachuska
bd7f4b389c Adding parametrization of the reactive forwarding app.
Change-Id: Ib54bd080f17ab8f755035ea3642bd385d9b5c35d
2014-12-05 05:05:46 +00:00
alshabib
ab98466b10 adding license to ALL files
Change-Id: I9df3277760d79732317816fe5b2f1f482e9f5375
2014-12-05 05:05:32 +00:00
Jonathan Hart
e9ef4f3fd1 Changed TODOs to NOTEs
Change-Id: I17a0f5099bd6931c50189794596c742f6ddc5b5a
2014-12-05 01:58:41 +00:00
Jonathan Hart
7dd4a33de3 Remove SDN-IP TODOs
Change-Id: I59b510ba95d4f76600d23d79a81964c2ef290a56
2014-12-04 17:37:05 -08:00
alshabib
4785eec529 removing some TODOs
Change-Id: Ic98c811573a1b37813993eedddec512ec85729f3
2014-12-05 00:59:35 +00:00