116 Commits

Author SHA1 Message Date
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
Charles M.C. Chan
fe42181ff5 ONOS-537 Provided maxLen setting to make sure packet data is sent with packet-in message. (OF1.3)
Apply Thomas Vachuska's solution of ONOS-537 (#2177) to FlowModBuilderVer13.
This solves the exception mentioned in the comment of ONOS-540.
Tested with OpenvSwitch 2.3.0 in Mininet 2.2.0.

Change-Id: I1f9d27d1b978ae01d16d63d6377046e4e2f3cd00
2015-01-12 18:20:51 +08:00
Thomas Vachuska
f4df00560f ONOS-537 Provided maxLen setting to make sure packet data is sent with packet-in message. Also added support for TrafficTreatment.Builder.punt();
Change-Id: I9f5577cf83b4d25c79459e56492be747a245397c
2015-01-06 12:30:18 -08:00
Jonathan Hart
d0ef752729 Parse set-field action in OF1.3 when creating flow rules from flow entries.
Closes ONOS-333

Change-Id: I7b032b3e6c874ded4c976de0afa3f4bbaa07df3c
2014-12-16 18:04:41 +00: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
alshabib
4785eec529 removing some TODOs
Change-Id: Ic98c811573a1b37813993eedddec512ec85729f3
2014-12-05 00:59:35 +00:00
Pavlin Radoslavov
369c643802 Use two thread pools for handling the OpenFlow STATS and BARRIER messages.
This fixes a problem where a large number of incoming STATS messages
is practically using all available threds from the pool (16), and
there are no available threads to handle the BARRIER messages.

Change-Id: I1130eb8f3b5a17d5d3a7825f32da68eacb99569a

fixing other threadpool issues, ie. not using cachedThreadPool

Change-Id: I40ef10e1f704aef779b2a23c0497dfb7992520eb
2014-12-04 02:06:53 +00:00
Praseed Balakrishnan
db8a9d21f9 Fix serializer exception while using optical intent on distributed store
Change-Id: If19a0c12eb0d88d2daa57c16fb1b626b7c0f428f
2014-12-03 21:44:22 +00:00
alshabib
64def641af aggregate flow replies on io thread
Change-Id: I622290f213ee830cfab7e4bd4ad7a52f612b475e
2014-12-03 09:07:40 +00:00
Brian O'Connor
abafb50f58 Changing org.onlab.onos package to org.onosproject
Change-Id: Ic81421faa27acdcff045add47d9e0a715cd4f575
2014-12-02 22:26:20 -08:00
Brian O'Connor
03defe7939 Moving org/onlab/onos to org/onosproject
Change-Id: I742627fe0862cac78391cf70010f99dc26dce1e6
2014-12-02 22:22:39 -08:00
Yuta HIGUCHI
82e5326b23 For ONOS-356
- Add current InstallationFuture information on TimeoutException
- Set timeout values propotional to batch size
- Fix for ConcurrentModificationException
- Check if src/dst is part of the graph before path computation

Change-Id: Iabeac7939c52502b83bf9ebcbe2023539de3ae99
2014-11-28 19:00:56 -08:00
Yuta HIGUCHI
804a4bb06a InstallationFuture: latch after setting error info
Change-Id: Ib7d1f01228a792707a865f71f19c0d3fa96dc1f0
2014-11-28 19:00:56 -08:00
Pavlin Radoslavov
119fd5c5a5 Javadoc fixes.
Change-Id: Ic2cef19a6f1af9916c8615c9319cc122d9da5383
2014-11-26 03:17:20 +00:00
Jonathan Hart
1f8e0d760c Add a case to handle 1.3 set-field actions when parsing flow entries.
The handling is not actually implemented, I just want to suppress the log
message for now. I have a task on Jira to actually implement this: ONOS-333

Change-Id: I9b230e7c602a61f3c2a0c35ae04ae06e305cd439
2014-11-25 23:57:50 +00:00
Jonathan Hart
58682ddc5e Lower log level of frequently-executed flow stats code
Change-Id: I2901a8ede86531677d506c54f7ee2878ef62bb49
2014-11-25 18:01:21 +00:00
Jonathan Hart
cf7832077b Changed back to used Apply Actions to find the actions
Change-Id: Ia08d60d623656bb12c8380d7ca0597a7fc4e89ce
2014-11-24 19:16:25 -08:00
Brian O'Connor
427a1760d4 Updating Intent Manager to deal with failures.
Added ids to Flow batch futures.
Adding some basic unit tests for IntentManger
Adding failedIds to the completedOperation in FlowRuleManager

Change-Id: I7645cead193299f70d319d254cd1e82d96909e7b
2014-11-23 16:16:34 -08:00
Yuta HIGUCHI
faf9e1c3b0 Lower log level
- periodic non-error log to trace
- Host event to debug

Change-Id: I1a3e746f4cafe72dbaa648ac379a0548a93445e4
2014-11-20 10:08:43 -08:00
Ray Milkey
241b96accd Fix high priority findbugs reported issues
Fixed some code that was reporting findbugs errors

Implemented a suppression mechanism for findbugs
reported errors and a suppression file.

Change-Id: Ie8a2e84cc57ec6ddfa14d782ee89feb095b9dd59
2014-11-17 16:38:30 -08:00
Praseed Balakrishnan
8c67d17142 MPLS label selector and treatment
Change-Id: Id1fba1e04155e6d97de4c8fd95573641537f1b7a
2014-11-15 10:42:36 -08:00
Thomas Vachuska
9b2da21522 Fixing flow rule batches
Problem should now be fixed. Hashing on enums last is a bad
idea because the enum value could be 0.

Change-Id: Ib29e90b393b5285be2807729b52e69b121340f09
2014-11-11 17:08:14 -08:00
Brian O'Connor
e4adf24970 remove actions from flowmod delete
Change-Id: I8cf6e940faf28b4f796e820827c307bf3c65ef16
2014-11-09 02:46:26 -08:00
Pavlin Radoslavov
ff894a2fcb Use Ip4Address and Ip4Prefix inside FlowEntryBuilder when dealing
with IPv4 source or destination.

Change-Id: Ia9084c2361b296d8636052e859c2a2d1516a4a11
2014-11-05 16:09:35 -08:00
Pavlin Radoslavov
23e398d804 Updated the Flow Mod builders (FlowModBuilder, FlowModBuilderVer10,
and FlowModBuilderVer13) to use Ip4Address and Ip4Prefix
instead of the generic IpAddress and IpPrefix when handling
IPv4 source and destination.

Change-Id: If35d735efe4cf557c79dc04eccf38f6a909e4506
2014-11-05 15:17:57 -08:00