170 Commits

Author SHA1 Message Date
Madan Jampani
23696428f8 Starting snapshot 1.5.0-SNAPSHOT 2016-03-09 14:02:04 -08:00
Madan Jampani
b7a5420285 Tagging 1.5.0-rc3 2016-03-09 13:47:32 -08:00
Jian Li
fd46e1d293 Refine application title and category in app.xml and pom.xml
- Remove ONOS keyword from application title
- Capitalize each keyword in application title
- Make it consistent to use App, Provider and Driver in
  application title
- Add right category name for each application
- Add missing application title and category
- Make application category comment more descriptive

Change-Id: Ib886b4a4293c38bd546a4107b20569f1bd7031a7
2016-03-08 18:41:50 +00:00
Simon Hunt
afae2f71fc Apps-- added onos.app.title property to applications.
Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
2016-03-07 19:30:59 +00:00
Charles Chan
2196a92c5f Bugfix and improvement of SR config loading
Change-Id: If17af7ff1fbd3cb712e59cce930ef11146bdbf2e
2016-03-07 17:32:07 +00:00
Thomas Vachuska
5d8994ffce Starting snapshot 1.5.0-SNAPSHOT 2016-03-03 17:13:26 -08:00
Thomas Vachuska
40d5255ca9 Tagging 1.5.0-rc2 2016-03-03 17:08:36 -08:00
Charles Chan
3e783d0b7b Fix NPE in SegmentRoutingManager
NetworkConfigEventHandler must be initialized before adding NetworkConfigEventListener

Change-Id: I8eb40c8b7345b915e613a678df8e8c103980ee21
2016-02-27 07:12:39 +00:00
Charles Chan
a35b02c148 Extract test json to separate files
Change-Id: Ica815b7c5ff0a77f411e621bbb6cfc8b78fcd012
2016-02-23 07:55:03 +00:00
Charles Chan
d9681e7d54 Improve SegmentRoutingAppConfig
- Separate host and subnet suppression
- Use port instead of interface to specify which SR should ignore

Change-Id: Ie6491950cddf0860924565f081504b4f4d788179
2016-02-23 03:52:22 +00:00
Charles Chan
d0fd5dc1bd CORD-546 Push L3 unicast rules for bgp peers when they are learned
- Change L3 unicast group id/key generation to include src MAC
- Note: Only flows are removed when a peer is gone
  since the group may still be referenced by routes announced by peer.
  It does no harm even if the group is not referenced.
- Note: We assume that peer does not move or update IP

Also fix several SR/VR integration issues, including
- Do not push broadcast group for /32

Change-Id: Ifb03601f5341f8b7717ea1fbccbc569b07f66476
2016-02-19 23:36:19 +00:00
Jonathan Hart
00cdddaa60 Send PIM Join/Prune messages based on events from the McastService.
Also change Interface to return a list of addresses rather than a set
to allow applications to rely on the order of configuration

Change-Id: Ie7f62fee507639325ee0a77b8db4088dae34597e
2016-02-19 18:53:12 +00:00
Charles Chan
116188d056 Cleanup interface constant
Change-Id: Ief110d6db88889e5c01c43b5d410330114c65ad9
2016-02-18 22:53:51 +00:00
Charles Chan
b54e8ba3e9 Fix javadoc error
Change-Id: Ica9ef8f921aa7b8ce891e17a6839bfec6f444068
2016-02-18 18:45:36 +00:00
Charles Chan
f2565a9cbc CORD-508 SegmentRouting / vRouter integration
- Added excludePorts config to SegmentRouting
    SR does not push VLAN filtering rule to excluded ports
    SR ignores hosts learned from excluded ports
- Use separate default route config
    Don't need to config 0/0 on the interface anymore

Change-Id: Iea75d60c2d5f5368e79652b1bf192a6ced49030d
2016-02-18 17:32:30 +00:00
Charles Chan
5270ed0088 CORD-512 Support vSG <-> vRouter default route
- Support multiple subnets per port. getIpPort() will only return the first non-/32 and non-/0 subnet
    /32 is used as vSG subnet
    /0 is used as default gateway
- Support multiple L3 unicast group on a single port
    Change the way to generate the group ID and group key
- Special case for 0.0.0.0 host. Push a /0 to IP table instead of /32
- Implement vRouterConfig
    Put VR MAC to TMAC table of all leaves when config added
        When processEthDst see PortNumber.ANY in key, match ETH_DST only
- For OFDPA, wipe existing instruction before sending to controller
    So packet that misses L3 unicast table won't be sent to controller twice
- For SpringOpenTTP, pop VLAN before sending to controller
- Move several constant definitions to SegmentRoutingService
- Add minimum priority for IP rules such that /0 won't collide with zero priority default rules
- Update the config sample
    Use VLAN=-1 for hosts
    Add example for default route

Change-Id: Id751697ce36a7e5c13b3859350ff21b585c38525
2016-02-18 17:30:19 +00:00
Charles Chan
17d38f4c59 Remove OFDPA /32 -> ECMP workaround
OFDPA software build 12.1.1+accton1.7-1 fixes this issue.
This workaround is no longer required.

Change-Id: I9952d8739cf0f72d671bbc217dabc09edf8820cc
2016-02-05 22:37:57 +00:00
Saurav Das
49831644a9 Two fixes: 1) cpqd emulation of ofdpa pops off internal vlan before sending to controller
2) Arp handler does not need to send flowmod to switch as hostmanager listener is doing that

Change-Id: I5460aa36bcb3cfce3bc1887e304a63b2221495b9
2016-02-05 13:18:01 -08:00
Charles Chan
14967c2731 CORD-389 Fix for Accton 6712 deployment
Related to this topic:
- Disable the meter collector since right now it is not supported
- Implement extension VLAN ID selector/treatment for OFDPA
    Since it requires two special flow entries to match untagged packets
        0x1ffe/no mask (filtering rule, need to go first)
        0x0000/0x1fff setvid 0x0ffe (assignment rule, need to go second)
- Not able to point /32 IP address to ECMP group. Use /31 instead.

In addition:
- Implement serializer for ExtensionCriterion

Change-Id: I621b3ad14014d7e6945c014cdae4f7cd2939288e
2016-01-27 06:39:45 +00:00
Ray Milkey
2693bdab3e Add a builder for DefaultLink to hide multiplying constructors
Change-Id: Iaf073d07989c398a8f44541ffdb8dd93e5715162
2016-01-26 21:33:28 +00:00
Brian Stanke
7cfd4433cb ONOS-3704 - Cleaning up Maven build warning messages and cleaning up some versions of thirdparty libraries.
Change-Id: Id578e10713d41b6c02e92cb2c6e17a4da0787b52
2016-01-26 21:04:36 +00:00
Charles Chan
e849c19398 CORD-349 Support VLAN cross-connect traffic
Change related to this topic:
- Support VLAN cross-connect traffic
    Utilize ports subjectClass to achieve. For non-xConnect port, set interface VLAN to -1
- Remove VLAN checking since we have multiple VLANs per port
- Hash the L2 interface group key generation to include VLAN as well
- Update the network-cfg.json sample

Other refactoring changes:
- Read next objective stores from srManager directly
- Use constant for flow priority
- CORD-267 Javadoc fix

Change-Id: I4ca8c2d9c8b3633a4a0101c5070d19343f7e5b90
2016-01-21 00:04:49 +00:00
Jian Li
c35415ddcd [ONOS-3634] Enhance app to have a category, icon, URL and readme
This commmit enhances application to have category, icon, URL and
readme. The web GUI and CLI will be implemented in separate commits

Change-Id: Ib02716d7118cc617b24f196f2213ea1fe99a34be
2016-01-20 00:30:35 +00:00
Flavio Castro
6816f25a94 Added debug info to ArpHandler and priorities to RoutingPopulator
Change-Id: I079c5d50b12602ef620dbc6c5812d4508fa0b58d
2016-01-15 19:17:14 +00:00
Charles Chan
188ebf53fc Segment Routing bug fix and enhancement
Bugfix:
- Add MPLS BOS matching
- Fix NPE caused by race between filter objective and broadcast next objective

Enhancement:
- Move group handler out from OFDPA pipeline
- Move ARP request from rule populator to packet request

Change-Id: I0ba40e10f7cb7f97277df86725fbd2546a62e890
2016-01-11 12:11:58 -08:00
Brian O'Connor
880dc20ddb Starting snapshot 1.5.0-SNAPSHOT
Change-Id: If9ce4ca5f5f6d089e9f088e710367f4e2ca1c9b6
2015-12-16 22:53:14 -08:00
Brian O'Connor
5a2856fd01 Tagging 1.4.0 (Emu release)
Change-Id: I55e4dbcecbfac86cccae27aa99a813910bd5557a
2015-12-16 22:47:51 -08:00
Brian O'Connor
6b7707101b Switching back to snapshot 1.4.0-SNAPSHOT
Change-Id: Ie726afc2df730a1009db421328267f2dcfedfd66
2015-12-15 15:48:42 -08:00
Brian O'Connor
d1cdd19530 Tagging 1.4.0-rc3
Change-Id: Iddb1e8adff820e81794bf83f5861519e9a787880
2015-12-15 15:36:45 -08:00
Brian O'Connor
b22ba656bb Switching back to snapshot 1.4.0-SNAPSHOT
Change-Id: Ic0ff8fe27d46b0662f596db9185591736efa6cf9
2015-12-11 17:02:48 -08:00
Brian O'Connor
4aded4c8b7 Tagging 1.4.0-rc2
Change-Id: I7e2916f7b02d297818ad65153aee5e5946f882ac
2015-12-11 16:55:13 -08:00
Saurav Das
423fe2b487 CORD-354 OF-DPA support for link-failures.
Bug fix in flowObjectives store. Adding a removeNextGroup API to the store.

Change-Id: I5890411e5b4eabdc057402687ada26e539500f8f
2015-12-11 17:00:52 +00:00
Shashikanth VH
013a7bc06c Naming convention
Change-Id: I2e2bbce6397dd95e841bcdc67ee125c1626671b3
2015-12-10 20:43:14 +00:00
Brian O'Connor
905ea22db6 Starting snapshot 1.4.0-SNAPSHOT
Change-Id: I0398bb2093e70d39788888038abb9df6193ccb42
2015-12-05 00:57:06 -08:00
Brian O'Connor
b209dc68e2 Tagging 1.4.0-rc1
Change-Id: Idec5c65021283fa03a8f2530aebba968a5451d8b
2015-12-05 00:56:21 -08:00
Saurav Das
4ce4596d62 CORD-367 L2 bridging and L3 routing support with internal VLANs in OF-DPA.
Also includes:
     All forwarding in app is now via nextObjectives (not treatments) - Spring Open driver converts
     non-ECMP forwarding to flow-actions, while OF-DPA driver continues to use groups.
     Convert 'setMeta' methods to 'withMeta' in Flow Objectives API.
     Bug fix in Flow Objective Manager - set of PendingNext is now threadsafe.
     Bug fix in ArpHandler - now recognizes routerIp in addition to gatewayIps
     Removed a bunch of testcode
     Added group count in CLI

Change-Id: Id3b879c5dda78151ca0ec359179f1604066d39fc
2015-12-04 19:49:00 +00:00
Charles Chan
531a78b802 CORD-352 Refactoring SegmentRoutingConfig
- Add Javadoc and fix function name convention
- Add setAdjancencySids method
- Change return value of getAdjacencySids from List to ImmutableSet
- Validate config value
- Add unit test for SegmentRoutingConfig

Change-Id: Ic43ac31a49da8a9d62131d7803930280cf9994d2
2015-12-02 22:41:44 +00:00
Charles Chan
d6d581a469 CORD-339 Network config host provider
* Implement new application org.onosproject.netcfghost
* Implement BasicHostConfig to include IP and location information
    - Update network-cfg.json to add host config example
    - Add network-cfg-2x2-leaf-spine.json for 2x2 leaf-spine network in SegmentRouting
* Update Segment Rounting
    - Punt ARP packets
      (which is done by HostLocationProvider previously)
    - Check existing hosts when device connected or configured

Change-Id: I03986ddc8203d740b5bf26903e3dbf866d4d4600
2015-12-02 20:27:46 +00:00
Saurav Das
8a0732e8ae CORD-48 Implementation of hashing Next Objective in OF-DPA driver. Major changes to ensure multi-ONOS-instance group-chain installation.
Also includes:
     Changes to Next Objective that adds metadata field for applications to optionally send auxillary info to drivers
     Changes to Next Objective that allows more explicit modification of the next objective
     Changes to Forwarding Objective and PendingNext to include hashCode() and equals() method
     MplsBosInstruction included in kryo serializer
     GroupKey's byte[] represented as a hex string
     Bug fix in mpls flow installation to report failure in install
     Bug fix in linkUp in SR app to disallow non-masters to modify groups
     Bug fix in ordering of actions in group

Change-Id: I3e7003f55724c2de79589e43e11d05ff4815a81d
2015-11-30 19:00:42 +00:00
Charles Chan
68aa62d743 [CORD-46] Implement L2 switching in Segment Routing
DONE
- Update SpringOpenTTP to support bridging table emulation
- Populate low priority subnet broadcast entry for bridging table
- Move IP entry population to host event handler as well
- Update ArpHandler to handle intra-rack ARP forwarding/flooding
- Move TTL_OUT action from IP table to corresponding group
    Since hardware does not support TTL_OUT in the IP table
- Populate entries to bridging table (MAC learning)
- Emulate src mac table

Not in this submission
- Emulate src-mac table behavior
- Pop vlan in the group instead of the flow

Change-Id: Ib69357c1889ccddaa4daa272d9f5843790ee1a3c
2015-11-19 22:42:01 +00:00
Saurav Das
4f98008c10 CORD-48 Added support for broadcast next objective in OFDPA driver.
Changed groupid to show in hex for cli command 'groups'

Change-Id: I86474912a9fd775c36d5bc49545eaa58ecc46b47
2015-11-06 23:41:10 +00:00
Charles Chan
0b4e61837d [CORD-313] Handles uncaught exceptions when device is not configured
Includes following minor changes
    - Move DeviceConfiguration and DeviceProperties to config package
    - Create DeviceConfigNotFoundException

Change-Id: I32455d88c712bb65cd7f71dab9472ae003303de2
2015-11-06 16:57:01 +00:00
HIGUCHI Yuta
ca9cc8e28e Avoid use of Objects.hash when there's only 1 params
- directly call #hashCode() when hashed Object seems non-null
- replace with Objects.hashCode(Object) when Nullable
- replace with Long.hashCode(long), etc. when primitive

Change-Id: I08c24ebbe94cf4162d1491209a14baf953163e41
2015-11-05 21:47:59 +00:00
Saurav Das
2857f38fb9 CORD-48 Added to support for OFDPA emulation with CPQD switch, via more table-miss-entries.
Fixed a race condition where device processing starts before config has fully loaded.
GroupHandler in SR app is now created only once, not every time a Device update happens.

Change-Id: I945c47ee9caa2f5740296f49d5d223783271bba4
2015-11-04 15:51:25 +00:00
Saurav Das
837e0bb9b0 CORD-48 Fixing filtering rule bug in multi-instance operation.
Change-Id: Ie91b2efcebff1bdb14357b6720ff8214a712cdc2
2015-11-03 01:39:33 +00:00
Charles Chan
9f676b64af Several fixes for Segment Routing
1. In getSubnetNextObjectiveId, do not create a broadcast group if it does not exist
       The creation is done when device is up and when config is added
2. Check if broadcast group exists before creating one
3. Put subnet in a Set instead of a List to avoid duplicated elements

Change-Id: Ifafd8e783a9d98aa62b5e299f560897458b90bb0
2015-10-30 15:47:08 +00:00
Charles Chan
c42e84e5b2 [CORD-46] Create a broadcast group for each subnet
DONE
- Expose subnet-to-ports information from DeviceProperties and DeviceConfiguration
- Create subnetNextObjectiveStore to store <DeviceId, IpPrefix> to nextId mapping
- Implement broadcast NextObjective in SpringOpenTTP
      Use ALL group type to achieve broadcast

TODO (not in this submission)
- Push ARP table for a host when its location is learned
- Push default ARP table miss rule. Action = to the broadcast group

Change-Id: I2de28095e85289e75af3fc7a02c811b270b342ad
2015-10-29 21:16:45 +00:00
Saurav Das
0e99e2ba40 SR app now assigns internal vlans per subnet and passes this
information in a filtering objective to drivers. OF-DPA driver
uses this information to assign vlans to untagged packets.

Change-Id: Ibf33bdcedf5f83992f362dfb91c12575c65da3b4
2015-10-29 14:21:23 +00:00
Saurav Das
822c4e21ba CORD-48 First checkin for enabling OF-DPA driver to support the SR app.
Filtering Objective support added. Driver renamed from OFDPA1 to OFDPA2.
Code refactored within driver to reflect test-code which will be used by
static flow-pusher app in the future.

Change-Id: I7132d8b8eaf28df7c11646c5a35035f258c65af4
2015-10-27 17:01:41 +00:00
Saurav Das
a07f203fbe Mostly just fixing typos
Change-Id: If543e9190035016161dfedd51136d66b799b8e26
2015-10-19 22:42:13 +00:00