141 Commits

Author SHA1 Message Date
Saurav Das
3ea46622c8 Removing dependency on lower level drivers for the BGPRouter application.
Also a couple of bug fixes

Change-Id: I8f2ec58ed3403ae03cf7c068dabb30ae4272ff85
2015-04-22 14:08:43 -07:00
alshabib
d17abc2e93 Refactored driver to use new FlowRule api.
Deprecated transition with table types and added api for transition with table ids.

Change-Id: Ifcf2d87d16810666d992e4d9f5ddca3d0da460be
2015-04-21 18:27:28 -07:00
alshabib
08d9898714 FlowRule api no longer uses TableTypes. Existing usages are converted to
integer representations via Type.ordinal() call

Change-Id: Ie2a26c5ced166e12f0e1ea22e39cd5195455a1ad
2015-04-21 23:52:19 +00:00
alshabib
2a441c6807 Flow Objective implementation
Provides an abstraction which isolates the application from any pipeline
knowledge. By using the provided objectives applications can express
their forwarding desires in a pipeline agnostic way. The objectives
are then consumed by a driver for the specific device who converts them
into the appropriate pipeline coherent flows.

Change-Id: I74a68b4971c367c0cd5b7de9d877abdd117afa98
2015-04-17 22:57:56 +00:00
Ray Milkey
34c959066d ONOS-533 Fix copyrights
- 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
2015-04-15 17:41:07 +00:00
Ray Milkey
4250735018 Remove deprecated instructions() method in the traffic treatment class
Change-Id: I739b35bdcbf9867c639c7b6ca4006f3eeafbb055
2015-03-24 18:18:28 +00:00
Jonathan Hart
67fc097a1e Remove "strip vlan" from our API because it is the same as "pop vlan".
"Strip vlan" is OF1.0 terminology, whereas by OF1.3 it is called "pop vlan".

Change-Id: I483526b39bf8ab6f9f96f251a8469e060b688878
2015-03-20 23:50:28 +00:00
Brian O'Connor
6ea48a22fe Starting snapshot 1.2.0-SNAPSHOT
Change-Id: Iffa1055c22448849353ede6581c277f4d3de78d8
2015-03-17 20:07:20 -07:00
Brian O'Connor
91d9019b24 Tagging ONOS Blackbird release: 1.1.0
Change-Id: Iee1accb8f83e03a1c4b2250d36d48aefd6383c97
2015-03-17 19:45:58 -07:00
sangho
c0b3c342ad BgpRouter app supports both OVSSwitch and Corsa HW switch.
Change-Id: Ic0174338af3dbb76e1195b0f94d53a13a60cc0e7
2015-03-16 11:27:17 -07:00
alshabib
da1644e2ae Added delete all flow rules during Corsa switch handshake
Change-Id: I885dad9453754bf86f12d4a86541fe7bfe7efd72

added delete all rules in corsa switch handshake

Change-Id: I7905a754653f6fc7eb8643023372e6dfa779cf26
2015-03-16 11:08:01 -07:00
Brian O'Connor
1545b1ef08 Starting snapshot 1.1.0-SNAPSHOT
Change-Id: I8caca4df60027426c18b51c1b35c313fe9ac1c10
2015-03-11 16:38:23 -07:00
Brian O'Connor
20fa3a45f9 Tagging 1.1.0-rc2
Change-Id: I1fa0feb1b790f79baa465fd82965433e109b34b2
2015-03-11 16:23:07 -07:00
Jonathan Hart
8ef6d3b9a0 Minor tweaks to the flow layer.
Prevent DistributedStatistics store from logging "rule has no output" for
rules that transition to other tables.

Change-Id: I85e86965f5609df608cbc19551632153960a5c5b
2015-03-11 20:08:45 +00:00
Jonathan Hart
37d659ca4a BgpRouter: Added treatment to delete flows
Deleting routes now works.

Change-Id: I7ed682474e571aa2f402a1762a2037190c2d9284
2015-03-09 18:41:34 +00:00
Jonathan Hart
54b406b1e4 Add push VLAN treatment and use it in BgpRouter groups
Change-Id: I8c241fd776cdddd77969413736bd786c0d5a4828
2015-03-09 18:33:29 +00:00
alshabib
346b5b362d Traffic Treatements now support deferred, immediate, table, and clear instructions.
By default, treatments are all immediate. Treatments will be deferred if the builder
predicated by deferred(). Subsequent treatments will be deferred until immediate is called
on the builder again. Multiple calls to deferred and immediate are permitted.

Change-Id: I76b3a44f2219fc1e72a7fb41b72d7bd602be85b7
2015-03-09 18:28:58 +00:00
alshabib
ab21b2d05a fix corsa pipeline divergence : need to differentiate between write and apply instructions.
Change-Id: I477d27d6e52a8e09744614e5f5aa843dd26331e0
2015-03-05 21:03:43 +00:00
Saurav Das
fbe25c5f72 Getting router interface config into the corsa dataplane pipeline
Change-Id: I67d5bf7a20190b07a7bf55c7b60f771877ca8dbb
2015-03-04 11:12:00 -08:00
Saurav Das
fa2fa93ff8 A set of fixes to ensure that the FlowRuleManager can correctly account for flows
from the dataplane in a multi-table pipeline scenario

Change-Id: I9ca3ef9a77781f126a13538647c824b27f77101c
2015-03-04 02:25:39 +00:00
Saurav Das
cbe6de3bb9 Fixing a couple of bugs in default entries for corsa pipeline.
Also fixing flowRule table-awareness with changes reflected in flow identification (hashing)
and the karaf CLI.

Change-Id: I2fac83db8e0b54b802fb765ef9d82033f7478b99
2015-03-03 17:03:25 +00:00
Brian O'Connor
266ac66643 Starting snapshot 1.1.0-SNAPSHOT
Change-Id: I2abf73c248c04f0559f97b313be034b48761695a
2015-03-01 07:36:09 +00:00
Brian O'Connor
352236e289 Tagging 1.1.0-rc1
Change-Id: I9c95f8309e1c98bc1a25eeaad1962b4d28257261
2015-03-01 07:36:08 +00:00
alshabib
1058080de1 WIP: Started implementing static flows for corsa vanderweken pipeline.
Modified to not use Corsa driver by default.

Change-Id: If8df5769cf084346121d34bf4490f578e6b6f2d0
2015-02-26 03:31:44 +00:00
sangho
22a805de6a - Supports multi-table feature in the improved batch process in the flow rule subsystem.
- Fix a bug of unsafe type conversion in OpenFlowGroupProvider.

Change-Id: I9a62f81b66d350b84296192f770dc8987aa0967b
2015-02-25 00:28:54 +00:00
Jonathan Hart
eda3387e4a Use setInstructions to add apply-actions.
We can't use both setInstructions and setActions, because the actions get
overwritten by the call to setInstructions.

Fixes ONOS-1113.

Change-Id: Id8bb1afd3da91966ce1345c6a1927f8fde5de3f4
2015-02-18 18:45:54 +00:00
alshabib
9af70070c8 support for corsa pipeline. EXPERIMENTAL.
Change-Id: Ic3db0a7a18f11c41c8a84f25a249dfb63109da97
2015-02-17 18:48:00 +00:00
Michele Santuari
4b6019e449 ONOS-631 #Initial MPLS intent implementation
Change-Id: I6f906b953f06f395cc67e612648802e333c0e581
2015-02-14 10:00:48 +00:00
sangho
20f91163c9 Fix a bug of wrong flow stats type checking
Change-Id: I5279aa3f620a5914d6d0f986b623137b926724bd
2015-02-12 11:25:43 -08:00
Pavlin Radoslavov
febe82cc82 Implement some of the missing IPv6 flowmod treatments
Work toward ONOS-509

The following treatments are added/implemented:
  - IPV6_SRC
  - IPV6_DST
  - IPV6_FLABEL

Also:
 - Renamed L3ModificationInstruction.L3SubType.IP_SRC and IP_DST
   to IPV4_SRC and IPV4_DST (for naming consistency).
 - Few minor fixes in related code: Javadocs, comments, log messages,
   and IP address usage.

Change-Id: I551056f767a37e7cb6ae7d79f4a3929183500b57
2015-02-12 18:24:54 +00:00
Brian O'Connor
72cb19a90e Implementation of new Flow Subsystem:
The subsystem no longer returns futures for tracking completion of work.
Notifications are explicitely returned via a call back mechanism. Also, the
subsystem is now asynchronous.

Change-Id: I1a4cef931c24820f9ae9ed9a5398f163f05dfbc9

more flowservice improvements

Change-Id: I5c9c1b6be4b2ebfa523b64f6f52e7634b7d3e05f

more flowservice impl

Change-Id: I05f6774460effb53ced8c36844bcda2f8f6c096f

Manager to store functional (at least i believe it)

Change-Id: I09b04989bd1004c98fe0bafed4c76714b9155d53

flow subsystem functional: need to fix unit tests

Change-Id: I1667f25b91320f625a03e5e1d5e92823184d9de0

flow subsystem functional

Change-Id: I429b3335c16d4fc16f5d55f233dd37c4d1d6111d

finished refactor of flow subsystem

Change-Id: I1899abc6ff6a974a2018d936cc555049c70a6804

fix for null flow provider to use new api

Change-Id: If2fd9bd5baf74d9c61c5c8085cef8bc2d204cbdc
2015-02-11 21:28:01 +00:00
sangho
89bf6fb1f3 ONOS-991: The event listener in OpenFlowRuleProvider needs to check the event type because GROUP_STATS are also published now.
Change-Id: I3b61fcc4b59f1b47b11debdb1863d87d36db7744
2015-02-11 03:47:32 +00:00
Pavlin Radoslavov
5e4f754f19 Implement some of the missing Selector and Match Conditions
Work toward ONOS-509

The following match conditions are added/implemented:
  - IPV6_EXTHDR

Also, fixed the match criteria for the optical signal type
to represent unsigned 8 bits integer (per spec).

Change-Id: I925db19cb43c5d9f589c1f090b6a75faabe0a19b
2015-02-09 01:20:09 +00:00
Pavlin Radoslavov
f3b693381d Fix toward ONOS-960 - Signed/unsigned value mismatch for OpenFlow-related
match/action conditions

Fixed the signed/unsigned issue for the match conditions

Also:
  * Reordered some of the code in CriterionCodec.java so the order
    of handling various Criterion types follows the order as defined in
    Criterion.java
    - In the process, removed a duplicated entry for Type.MPLS_LABE
    - Fixed an issue with TCP/UDP/SCTP ports being accessed as 8-bit integers
      instead of 16-bit integers

  * Updated some of the unit tests in CriterionCodecTest.java to use
    larger integer values that could expose better potential bugs in
    the tested code.

Change-Id: I531d13bd258ebc559ce6be716863c01613427a98
2015-02-09 01:16:31 +00:00
Yuta HIGUCHI
32a53c5a85 Instruction related fixes
- Fixed PushHeaderInstructions bug, where half-baked Ethernet instace was used
  only to hold ethernetType. (ONOS-987)

Change-Id: I330a862c8a18206250befbd4e22ee6d189beed83
2015-02-08 01:41:43 -08:00
Pavlin Radoslavov
d0fd841978 Implement some of the missing Selector and Match Conditions
Work toward ONOS-509

The following match conditions are added/implemented:
  - IN_PHY_PORT
  - IP_DSCP
  - IP_ECN
  - METADATA

Change-Id: I6f529ee90b2b9e0d5046f83c034e8be3faf86d8b
2015-02-05 05:44:00 +00:00
sangho
8995ac580d ONOS-958: Add a Group action to TrafficTreatment subsystem.
Change-Id: I2a377508b9721ee96a5a52b0bb2ed3a960c982ce
2015-02-05 05:00:56 +00:00
sangho
87af81190e Added SpringOpenTTP switch driver (ONOS-822/ONOS-682).
Modified OpenFlpwRuleProvider to support FlowRule with multiple-table feature.

Change-Id: If95284077b96213593c5c1e3ab12900001bf49a2
2015-02-04 05:53:53 +00: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
Sho SHIMIZU
aba9d009c9 Apply the naming convention to BatchOperationEntry
Resolve ONOS-889

Change-Id: I2001fabba138b9ff5be9a5943d3f020b4c38d195
2015-02-03 00:35:23 +00:00
sangho
3f97a17d9b (ONOS-684) Added a few new OF actions, which are required for Segment Routing Application
- MPLS POP (Ethernet type)
 - Dec MPLS TTL
 - Dec NW TTL
 - Copy TTL In
 - Copy TTL Out

Change-Id: I639a1bfff9ba3ae8c372c0a4b36f132cb2610b7b
2015-01-29 23:00:26 -08:00
Sho SHIMIZU
500c317c2e Use diamond operator to simplify codes
Change-Id: I2cb27782c6f47c908d06e1877705921a5f57f91e
2015-01-27 23:44:18 +00:00
Sho SHIMIZU
c0e8bfa98e Revert "Use Optional instead of null to remove FIXME comment"
This reverts commit 9639df7bcf1bda1ebb22fe7d2850708992ccc38b.
This is due to the regression described in ONOS-825.

Change-Id: I2909ed3e3461439596f99bf0cd94da3792a0ff64
2015-01-23 00:47:58 +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
Sho SHIMIZU
9639df7bcf Use Optional instead of null to remove FIXME comment
Change-Id: I21c0cd954eaff4441392205aede95b34285f1402
2015-01-21 22:20:54 +00:00
Sho SHIMIZU
fce9d4c211 Delete unnecessary semicolon
Change-Id: I19e82ef15c91411184f1bb9ad86dea668f48c63b
2015-01-21 16:47:10 +00:00
Jonathan Hart
29afca36c4 Fixed bug where ONOS sends actions in DELETE flow mods in OF1.0.
Fixes ONOS-787.

Change-Id: Ide8817927fc7a64da79df7998e3baebefb09de40
(cherry picked from commit 18679365afc6eab5cb13f702def99b3f077bf4ba)
2015-01-21 02:26:29 +00:00
Kunihiro Ishiguro
0f9aba8e71 ONOS-635 Adding ICMPv6 type and code builder for HostMonitor.
aovid duplicate call of toString.

Apply changes to FlowEntryBuilder and FlowModBuilder as well.
Fix missing break; issue.

Change-Id: I1a2e59ca943bbcc9677b9fc0cb9eb2f7cb3d7aa3
2015-01-17 17:27:16 +00:00
Jonathan Hart
2ffcd10ac9 Add default drop rule in OF1.0 switches.
Default drop rule has the lowest priority and matches everything. This means
if a packet doesn't match any rules in the flow table, it is dropped. This
brings OF1.0 behaviour into line with OF1.3+ behaviour.

Change-Id: Id73839907a664bdccbc7a5eb904a8edd2a6222e7
2015-01-17 16:38:28 +00:00
Charles M.C. Chan
52fae7da14 ONOS-509: Match IPV6_SRC, IPV6_DST criteria
* Following classes have been extended to match IPV6_SRC and IPV6_DST criteria:
    - Criteria
    - DefaultTrafficSelector
    - FlowEntryBuilder
    - FlowModBuilder

* Not included in this submission
    - Match of other IPv6-related criteria
    - Set of all IPv6-related criteria (action)

Change-Id: I115829a480356d2037e0fc809595f7a5eec25874
2015-01-16 18:11:27 +00:00