2483 Commits

Author SHA1 Message Date
Ray Milkey
17801b4fca remove deprecated removeRulesById() method
Change-Id: I9aef85eb8a9146e11e800cb3e524fb2b4e19d4f9
2019-02-26 21:26:02 +00:00
Ray Milkey
4f7e3631d2 Removal of deprecated APIs
- OchSignal constructor
- unfiltered connect point methods in single point to multi point intents
- useBackup() method from disjoint paths
- ChannelAdapter class
- getLastUpdatedInstant() method from cluster store
- switchWorkingPath() method from protection config behaviour
- getVersion() method from partition
- getFlowRulesById() method from flow rule service

Change-Id: I5c6c2f31725f7e7e44ac2abb18ce3fb96b09d93e
2019-02-22 18:01:45 +00:00
Ray Milkey
312221c3b5 Removal of deprecated UI methods
- removed deprecated addProp() methods from property panel
- removed deprecated DateTimeZone based withZone() method

Change-Id: I251ca70e49f37714e60cb5312a444baa0ef88bd8
2019-02-20 20:53:46 +00:00
Ray Milkey
f632826bc2 Remove deprecated Node APIs
Change-Id: I3e235ff213fc376c02ac01eb43f72d72ab4d17f4
2019-02-20 20:53:18 +00:00
Ray Milkey
e1077f8ed7 Remove calls to deprecated public intent data constructor
Change-Id: Ic77c1d2cfb3e954bc0b7ee6a8a66d9c4b8167872
2019-02-20 20:52:38 +00:00
Ray Milkey
5ec42085af Remove deprecated Port Statistics APIs
- Builder set of port number as an integer
- Query port number as an integer

Change-Id: Id4b4380c75237f293d2cc28a102748d416cf5c01
2019-02-14 17:43:07 +00:00
Ray Milkey
8efe27882c Remove deprecated APIs
- Storage Admin Service getPartitionInfo()
- org.onosproject.codec.ExtensionSelectorCodec
- org.onosproject.codec.ExtensionTreatmentCodec
- DefaultPortDescription builder withPortNumer()
- DefaultTableStatisticsEntry public constructors
- IntentData public constructors and copy constructors
- DistributedPrimitiveOptions withMeteringDisbled()
- PartitionService getActiveMembersMembers(), getDistributedPrimitiveCreator()
- DistributedPrimitive DEFAULT_OPERTATION_TIMEOU_MILLIS
- MapEvent.value()
- PartitionClientInfo.sessionId(), session()
- org.onosproject.store.flow.impl.DistributedFlowRuleStore

Change-Id: Id89870e6facf1e7fca24dd180bbd095139d001f3
2019-02-14 17:42:43 +00:00
Ray Milkey
47f09c5674 Remove deprecated FlowRuleExtPayLoad API
Change-Id: Id20e1e296670f8cc94b23c3fd2272a1c2de3990e
2019-02-13 23:17:40 +00:00
Ray Milkey
48ea5a09cc Fix bug where an ancillary provider was allowed to be created even if there was no primary
Change-Id: I910269240582a0eccc6e2d8e4de0c9c3f5e4ad65
2019-02-07 09:50:17 -08:00
Carmelo Cascone
4c289b731d New P4RuntimeClient implementation that supports batching and error reporting
The new client API supports batching and provides detailed response for
write requests (e.g. if entity already exists when inserting), which was
not possible with the old one.

This patch includes:
- New more efficient implementation of P4RuntimeClient (no more locking,
use native gRPC executor, use stub deadlines)
- Ported all codecs to new AbstractCodec-based implementation (needed to
implement codec cache in the future)
- Uses batching in P4RuntimeFlowRuleProgrammable and
P4RuntimeGroupActionProgrammable
- Minor changes to PI framework runtime classes

Change-Id: I3fac42057bb4e1389d761006a32600c786598683
2019-02-04 23:12:46 -08:00
Carmelo Cascone
e45902b280 Bumped P4Runtime to v1.0.0
Change-Id: Ie6419e45980a0394ce1e0439831f4b011a4d7487
2019-02-05 00:44:37 +00:00
Carmelo Cascone
99c59dbb03 ONOS-7898 Action profile group/member refactoring
Also includes:
- New abstract P4Runtime codec implementation. Currently used for action
profile members/groups encoding/deconding, the plan is to handle all
other codecs via this.
- Improved read requests in P4RuntimeClientImpl
- Removed handling of max group size in P4Runtime driver. Instead, added
modified group translator to specify a max group size by using
information from the pipeline model.

Change-Id: I684bae0184d683bb448ba19863c561f9848479d2
2019-01-17 18:11:43 -08:00
Diego Garcia
aab99478e6 A new driver behavior call TapiDeviceLambdaQuery.
This new driver behavior queries the registered Open Line System (OLS) TAPI device to discover the map of available lambdas of the queried device's port.
The method queryLambdas returns a Set<OchSignal> which includes an entry for each available spectrum slot.
Currently only Dwdm 50Ghz grid spectrum type is implemented.
Additionally, the toString method of the OchSignal class has been modified to return the spectrum slot asociated to the OchSignal with it's actual ChannelSpacing value.

Change-Id: I1dfbc7fd7801f92588a5cf9b6316fa8dea01a85d
2019-01-16 12:52:17 +00:00
Carmelo Cascone
cb4327a09e ONOS-7887 Rename action profile-related entities
Members can exist outside of a group. Previous naming was ambiguous
about this.

Action group -> action profile group
Action group member -> action profile member

Change-Id: I5097e92253353d355b864e689f9653df2d318230
2019-01-10 13:52:52 -08:00
Andrea Campanella
1c24fb9689 [ONOS-7885] Adding Terminal_device device Type
Change-Id: I42a8f8aeef73e1d51d4b5128b9eb7e8879d0418c
2019-01-10 08:44:26 +00:00
David K. Bainbridge
56e9023a33 ONOS-7806 - add support for path differentiator for netconf config
Change-Id: Ie4bdf4eb0348f9591b958bf89284026ed1c39074
2019-01-07 14:21:22 -08:00
Diego Garcia
09ab5e2d7d A new RestSB driver named TapiDeviceDescriptionDiscovery.java is included within onos-odtn drivers subproject. This driver accounts for the deviceDescriptionDiscovery behavior.
Removed unneeded imports and star imports, added explicit imports.
Removed logs or changed them to debug level.
Removed stalled references.
Changed pakage to org.onosproject.drivers.odtn.tapi.
Changed the class of port number to ONOS PortNumber.
Changed the store of mapping information between TAPI SIP's uuid and ONOS device port Numbers to annotations instead of a hashtable.
Removed CreatePortDescription function because it is unnecessary.
Created checkValidEndpoint fuction to identify just valid OLS SIPs.
Created getOchSignal fuction to complete the OchSignal info with the TAPI SIP information.

Change-Id: I863ea0ddb233dbcc0b82c5cc67beff1f072cb35a
2019-01-03 09:42:36 +00:00
Andrea Campanella
fa0f6cc700 Adding OLS device Type for ODTN project
Change-Id: Ia3472b47ea12d2f2f44de9cb88f20774881530ee
2018-12-19 16:26:38 +00:00
Charles Chan
a724c513ea Address StackOverflow by offloading cache listener to a separate thread
In addition,
- Address Thomas' comment in gerrit #20442
- Clean up redundant code

Change-Id: Iafb20895d3b338431c7faf9b810b6a6f6b055d92
2018-12-18 22:29:18 +00:00
Jian Li
654204c089 Support GENEVE tunnel type in OVSDB southbound
Change-Id: I9b93c14d93645ac40525c23bff368e0f81a8189d
2018-12-17 08:27:36 +00:00
Thomas Vachuska
bd8ddfe228 Refactoring audit subsystem to clean-up and eliminate back-dependency from core to CLI; still needs additional work.
Change-Id: I93c04c94f27b7b89c582b359eebe125458a573a7
2018-12-14 14:47:17 -08:00
Carmelo Cascone
af3a098b0c Sometimes we need to create multicast groups without replicas
Change-Id: I29dd07115efece0cc2d7d998317cfc3bfd7a1569
(cherry picked from commit 00552ba153a61e2d904e6fcf36d25330630bb8e1)
2018-12-11 14:48:06 -08:00
Carmelo Cascone
b5324e7168 Improve fabric.p4 to reduce pipeline resources and refactor pipeconf impl
This patch affects both the P4 pipeline implementation and the
Java pipeconf.

P4 PIPELINE
- Less tables and smarter use of metadata to reduce inter-tables
dependencies and favor parallel execution of tables.
- Removed unused actions / renamed existing ones to make forwarding
behavior clearer (e.g. ingress_port_vlan table)
- Remove co-existence of simple and hansed table. Hashed should be the
default one, but implementations that do not support action profiles
might compile fabric.p4 to use the simple one.
- Use @name annotations for match fields to make control plane
independent of table implementation.
- Use @hidden to avoid showing actions and table on the p4info that
cannot be controlled at runtime.
- First attempt to support double VLAN cross-connect (xconnect table).
- New design has been tested with "fabric-refactoring" branch of
fabric-p4test:
github.com/opennetworkinglab/fabric-p4test/tree/fabric-refactoring

JAVA PIPECONF
This patch brings a major refactoring that reflects the experience
gathered in the past months of working on fabric.p4 and reasoning on its
pipeconf implementation. Indeed, the FlowObjective API is
under-specified and sometimes ambiguous which makes the process of
creating and maintaining a pipeliner implementation tedious. This
refactoring brings a simplified implementation by removing unused/
unnecessary functionalities and by recognizing commonality when possible
(e.g. by means of abstract and utility classes). It also makes design
patterns more explicit and consistent. Overall, the goal is to reduce
technical debt and to make it easier to support new features as we
evolve fabric.p4

Changes include:
- Changes in pipeliner/interpreter to reflect new pipeline design.
- By default translate objective treatment to PiAction. This favors
debuggability of flow rules in ONOS.
- Support new NextObjective’s NextTreatment class.
- Remove lots of unused/unnecessary code (e.g. async callback handling
for pending objective install status in pipeliner as current
implementation was always returning success)
- Gather commonality in abstract classes and simplify implementation
for objective translator (filtering, forwarding, next)
- New implementation of ForwardingFunctionTypes (FFT) that looks at
criterion instance values along with their types (to avoid relying on
case-specific if-else conditions to recognize variants of an FFT)
- Adaptive translation of NextObjective based on presence of simple or
hashed table.
- Support DENY FilteringObjective

Also:
- Fix onos-p4-gen-constants to avoid generating conflicting
PiMatchFieldId variable names.
- Install Graphviz tools in p4vm to generate p4c graphs
- Generate p4c graphs by default when compiling fabric.p4
- Use more compact Hex string when printing PI values

Change-Id: Ife79e44054dc5bc48833f95d0551a7370150eac5
2018-12-11 14:48:06 -08:00
Charles Chan
b87d9f17b2 Allow NextObjective to refer to another NextObjective by NextId
Change-Id: I4bc5381be8241ddd765668275f02f795ba06a632
(cherry picked from commit 7fbd2b167ac2a8981255dc17aa53b2ba93073018)
(cherry picked from commit f261d5cbaf8e936b5e3b2f0c55d8e9e698922d2d)
2018-12-11 22:30:00 +00:00
alessio
3039bdbb06 [ONOS-7839] suggestedPath for optical connectivity intent with optical-rest support
Change-Id: I2b5093ac26149e450a14467c71656447233b5ce2
2018-12-06 21:37:20 +00:00
Rafał Szalecki
de5cf84e30 [ONOS-7842] Implement host annotation using netcfg
Change-Id: I2c5c516d642b34f11cae994b3fea31ebd7d76219
2018-12-04 17:56:16 +00:00
Thomas Vachuska
52f2cd1520 Detangling incubator: virtual nets, tunnels, resource labels, oh my
- virtual networking moved to /apps/virtual; with CLI & REST API
- tunnels and labels moved to /apps/tunnel; with CLI & REST API; UI disabled for now
- protobuf/models moved to /core/protobuf/models
- defunct grpc/rpc registry stuff left under /graveyard
- compile dependencies on /incubator moved to respective modules for compilation
- run-time dependencies will need to be re-tested for dependent apps

- /graveyard will be removed in not-too-distant future

Change-Id: I0a0b995c635487edcf95a352f50dd162186b0b39
2018-11-13 22:14:50 +00:00
Ray Milkey
123f0e08ad Merge branch 'master' into dev-karaf-4.2.1
Change-Id: If6c7d5f1dc6434ac8ea2fd9716b8ebeee38daa50
2018-11-08 14:18:52 -08:00
Daniele Moro
3a6e1517e1 Added suggest path to PointToPointIntent
Change-Id: Ie8ae3af6bd97af3628334d37482e63196d15b094
2018-11-08 11:12:50 -08:00
DongRyeol Cha
ce65cc0055 Make a link depends on packet-in LLDP packet.
The ONOS does not process the incoming LLDP packet from switches.
The ONOS only process LLDP packets if LLDP packet has "ONOS Discovery" optional TLV.

So, this changes process incoming LLDP packet from switch and make a link information and onos can utilize it.

Also, this patch changes the requested appId of DefaultForwardingObjective generated by PacketManager.
So, AppId in result of flows cli will be printed to actual requested appId.

ONOS-7748

Change-Id: I2611b34655bec2369b8817ce0cd29fb2edbed845
2018-11-08 18:36:54 +00:00
Ray Milkey
a349da9d6b Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I3c87139d15508e16a15df62fe73590b2a2ef7a04
2018-11-07 16:20:46 -08:00
Alan Lo
5e2b705713 Update spectrum pipeline config
Change-Id: I6d663e1a2851d812ab64cf6cb268c20914520570
2018-11-06 23:47:09 +00:00
Ray Milkey
e52652ced3 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I059c6a95489ff5cdc51dd7e98ba44a8415238bc2
2018-11-02 17:12:33 -07:00
Charles Chan
c88ebaa1e4 Save developers from wasting hours on wrong bucket type
Enforce bucket type to be consistent with group type
Update unit tests accordingly

Change-Id: Ia5f56ca4b5445268ebee09e321c34ed3f3f39827
(cherry picked from commit 5c00be8b143eb73d42b98820641da5c20e458579)
2018-11-02 23:24:02 +00:00
Thomas Vachuska
f566fa2503 Removing commented out @Property annotations from the core.
Change-Id: I336f6a21db531187b8e2fcfb51e7da315c615771
2018-10-30 23:43:48 +00:00
Ray Milkey
a218d43062 Merge branch 'master' into merge
Change-Id: Id77bb2de77dd288404c83e331b076aaf9aafacc5
2018-10-30 12:44:55 -07:00
hjtsao
1e8a1bd5ce [ONOS-7818] Implement a device behaviour to get table statistics. Make FlowRuleDriverProvider periodically call FlowRuleProviderService.pushTableStatistics().
Change-Id: Ife2b67b8c6c3582281704afe6f9a90538afbc798
2018-10-26 22:47:29 +00:00
Ray Milkey
956bb1691a Merge remote-tracking branch 'origin/master' into dev-karaf-4.2.1
Change-Id: If611105632e508cb17352c6f5b1cbcfd85f716d1
2018-10-26 10:53:44 -07:00
hjtsao
1a4333c51c Enhance CLI command 'tablestats' to support P4 switch
Change-Id: Icb7bae93840bac1ad8d49240f61a4f5bf08dac4c
2018-10-26 17:26:35 +00:00
steven30801
7632e150e1 [ONOS-7596] Support reading table entries with counter data in P4Runtime
Change-Id: I85bacb1697a6c881dd69ba74a2162c73ec0b8aee
2018-10-26 17:25:13 +00:00
Thomas Vachuska
22ea6126e4 Removing BUCK files and other Buck-related auxiliaries.
Change-Id: I23691380efcd9bce4906695605214ed59ada0e87
2018-10-24 20:02:31 +00:00
ghj0504520
ec1a420030 ONOS-7810 calculate cookie field when pipeconf registered
Change-Id: Iea29fc447b34c49d4e8fcc831812385459c1ccbb
2018-10-24 19:59:22 +00:00
Ray Milkey
d542568b21 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: Iec1b8947c898b0bf10db8caece0c3a064d1c63ae
2018-10-23 10:50:43 -07:00
Ray Milkey
28b15ae6e0 Fixes to allow ONOS to build using built in bazel Java 9 JDK
Change-Id: I57b7b3b9a8a28a824b196a72a24c42cd9d04cc59
2018-10-19 17:08:37 +00:00
Carmelo Cascone
03ae0acdd8 Bump version of P4Runtime to 1.0.0rc3 and P4 tools
Change-Id: I3082b4bd772d692830bd5af8e326a0fd5fb2f167
2018-10-18 22:30:46 +00:00
Ray Milkey
d17309c2f5 Merge branch 'master' into merge
Change-Id: I35af23202e94a114f129f2f000ab237165b26737
2018-10-18 10:12:54 -07:00
Samuel Jero
31e16f57b1 Secure LLDP-based Topology Detection
Current LLDP/BDDP-based Topology Detection is vulnerable to the
creation of fake links via forged, modified, or replayed LLDP packets.
This patch fixes this vulnerability by authenticating LLDP/BDDP packets
using a Message Authentication Code and adding a timestamp to prevent
replay. We use HMAC with SHA-256 has our Messge Authentication Code and
derive the key from the config/cluster.json file via the
ClusterMetadata class.

Change-Id: I01dd6edc5cffd6dfe274bcdb97189f2661a6c4f1
2018-10-17 15:59:31 +00:00
Ray Milkey
0b18b72872 Merge branch 'master' into merge
Change-Id: I163ecf699b554e33f4db938c66b73c9911e51135
2018-10-16 13:19:15 -07:00
Saurav Das
a432cf87fa Allow applications to specify a few other packet-request flow priorities.
Also let Ethernet class recognize EAPOL eth-type when printing.

Change-Id: I52b9d9aec6dfdd07aa49861f8c6b82ed814f638e
(cherry picked from commit 6f58cf1e5aae371cb8c7e0ad69552f3e68672f05)
2018-10-12 01:12:27 +00:00
Ray Milkey
db57f1c326 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I86b9d80581cd76a7c20e05201023090f9692d1ab
2018-10-09 11:26:45 -07:00