15276 Commits

Author SHA1 Message Date
Jian Li
dd5172e5a6 Harden the health check logic of kubevirt control plane
Change-Id: I161e71ab473ace323b4433fa4b90860b014fe677
(cherry picked from commit e15a60c16ca78af405fd1681128e0201550d196a)
2022-08-23 00:19:05 +00:00
Anurag Chadha
da4c5c40f5 isAvailable returning true due to pingDevice method at NetconfControllerImpl even if netconf data tree can't be fetched from device.
Change-Id: If4ee29d4db266561b63421b4aae538874daf7a53
2022-08-20 16:36:40 +00:00
pierventre
80b532d76c [SDFAB-189] Update ONOS CI and test new image
Fix api docs upload. Upload is done now in the CI
script by using rsync (see ci-management)

Change-Id: I29f435850cb74a72b50288725dd6e9508783dbce
(cherry picked from commit dd14a4e6111c321b0252ea5555fabe0b7b4d22d2)
2022-08-02 20:40:07 +00:00
pierventre
69db90c26e [SDFAB-1197] First stab to update ONOS to py3
Update has been performed only on the scripts and the
executables strictly necessary for the following use cases:

- Build (including Intellij)
- Tests (including Intellij)
- Docker build (including dev and yourkit)
- Upload snapshot (including local)
- Release

Finally, fix the ability to run ONOS using onos-local targets,
stc and docker stc (aka up4 stc env). Last but not least, updated
the azul image to a newer one which exports also the PYTHONENCODING

Change-Id: Ie96f3a9c76dbba83b1fc3896a372f1045d3d7ccc
2022-07-29 13:09:20 +02:00
pierventre
5489c2f6b1 [SDFAB-1196] Build ONOS with Bazel 6.0.0 pre-release
This was a quite big jump (3.7.2 -> 6.x.x) and we had
to face the deprecation of several components.

- javabase/host_javabase -> java_language_version and
java_runtime_version

- java_toolchain/host_java_toolchain -> java_language_version
and java_runtime_version

- Turnedoff "ReturnValueIgnored" related to ErrorProne

- Moved to bazelisk v1.11.0

- patched again the grpc code due to the deprecation of host_javabase
as java_toolcahin contains already this information.

- resource_jars are also handled as resources because java constructs
do not accept them anymore.

- Use the OSGIWrapper to fix the path of the resource_hars and untar them.
Additionally clean up the code and enable/disable logging through a param.

- Fix absolute_javabase in the Dockerfile by providing the absolute
path of the local jvm through local_java_repository. The latter is
appended to the WORKSPACE file on demand inside the Dockerfile.

Change-Id: I96e06fe52b3b49a1a34f01443eec583a95347323
(cherry picked from commit 846c8b167f3e3aa8086b3eab3df94154a75dc423)
2022-07-29 07:42:16 +00:00
senthil
63e1c11706 Supporting workflow list & map json data model for workflow context.
Workflow json data model bind to list & map objects
usage. For example
List<Object> data;
Map<Object, Object> data.

Change-Id: I46899c8d2267ebca0663e85302eba2242fbcfdda
2022-07-14 12:13:53 +05:30
Sanjana Venkatachalam
3dd305eb42 Implement CLI support for workflow logs
Added CLI commands to display workflow logs for each context

Change-Id: Ic0a0f323cebc8a21325dd075b20bbdfd104aeae1
2022-07-08 23:47:55 +05:30
Daniel Park
766a0400b8 Bugfix to String allocation logic for label in KubevirtPrometheusAssuranceManager.
Change-Id: I4345a0c92e84f54545a83ee25a3c2bf7506bc353
2022-07-05 19:30:40 +09:00
Andrea Campanella
a42a6ab206 Enabling role timeout configuration on the Device Manager
Change-Id: Ie8664189d236431a5f2ee42476d0f99fdfe5f1d7
(cherry picked from commit 32762fa3a3fce3f0cc6d97e9fadca2959080ad08)
2022-06-29 16:42:31 +00:00
Sanjana Venkatachalam
fc25e87c54 Implement logger for workflows
Added Workflow Logger annotation and Log Store

Change-Id: I90b1e34f94083aceff3323660a708756096a0ef0
2022-06-22 20:46:29 +09:00
Andrea Campanella
775e5f842c Removing json package dependency due to licensing issues
Change-Id: Iabd2f0343ca42a1956c1f7c6e471d8e141d29bc7
2022-06-09 14:39:21 -07:00
Daniel Park
c1ba1f4b1d Implements Kubevirt Prometheus Assurance exporter in kubevirt networking app.
Change-Id: Ief89fe71f24c2999ae02d94b4f0f82b3822ae19f
2022-05-31 09:27:30 +09:00
Jian Li
06f8f46b55 Extract web and codec into a separated web pkg in kubevirt-net app
Change-Id: If15fe4391009a09a79e60965d90fac26d5bad7fe
2022-05-30 09:56:23 +00:00
Daniele Moro
e719836516 [SDFAB-1177] Separate ingress and egress UpfCounter
Change-Id: I957754bc3f12d2e8f6d9d5748bb0b8c2b01a924c
(cherry picked from commit db0e125ac2515dbb711efdeebc3948b28e9e392b)
2022-05-18 14:20:30 +00:00
Daniel Park
2ba66e251f Supports Mm5 Interface in KubevirtNode app.
- Adds datacenter and cluster id parameter to KubevirtApiConfig
  - Implements related REST API web resource

Change-Id: Ib1b6cbc1dbbe11def4d97d78c2e74b5eeec560dc
2022-05-09 00:15:59 +00:00
Ray Milkey
84ece9ad9e Fix a typo
Change-Id: Ic6c5ffd2984a7667d49b4b14f0162ed65eb5e1eb
2022-05-06 12:19:58 -07:00
alessio
2c8a590b06 Fix to the NetworkConfigLinksProvider name to allow contextual use with LLDP provider. Needed for multi-layer deployments.
Change-Id: I95b2b78eb54f343f97e609f48b012149e5173875
2022-05-06 15:02:42 +00:00
Ray Milkey
ce626383ef Document describing ONOS release builds
Change-Id: Ia47f52a5da9b06a7932f976007cba1a6eeaceeb4
2022-05-05 12:01:01 -07:00
Andrea Campanella
3971df8106 [ONOS-8157] Adding port disable during periodic checkeker for device disconnections.
Change-Id: Ie44f2c485446e29ef4c39198e8bfe8461bd13c93
(cherry picked from commit 9f820659064984ca898ffd40083a1a4944097897)
2022-05-02 07:24:21 +00:00
Daniel Park
c7dece9f1c Sends GARP packet to switch when the router is changed to other LEG nodes.
Change-Id: I2765e1b3f805a66f45a624ec82cc45d776321411
2022-04-12 14:29:40 +00:00
Daniel Park
17fe79854d Connects to all the physical bridges in Kubevirt Node app to deal with the case that the physical port is disabled.
Change-Id: I9706cd4b670fbbb7ffdaaa2924fb893c801b2253
2022-04-12 18:43:19 +09:00
senthil
d4fbba71a6 Remove links when device status changed.
Discovered links should be removed immediately When device status become unavailable.

Change-Id: I6cd771716f5c232294a49484b700a1aa122f7350
2022-04-08 15:54:06 +00:00
Anurag Chadha
75baa0b33f [ONOS-8153][ONOS-8154] Fix for isAvailable validating netconf session and thread pool size defined at Netconf Controller
Change-Id: I34ba70c8806bf518ab8f5804c54e6fa2a256dafa
2022-04-08 12:49:36 +05:30
Daniel Park
1aeb8eba74 Fixes KubevirtRoutingSnatHandler not to disassociate procedure when the gateway node is dead.
Change-Id: I31d196013513670b5356069867d646e289780462
2022-04-05 15:36:38 +00:00
pierventre
13792aa10f Update FlowRuleOperations API
stripeKey now exposes an Optional instead of an Integer

Change-Id: I9a13fcea85ba3e0b52c004ece5a47fc50e99c9d6
2022-04-04 13:14:13 +00:00
Jian Li
4b3436a259 Support STT tunneling protocol at kubevirt networking app
Change-Id: Icbef76dbfb842ce1cf6893bf18ee80c4b1b26006
2022-03-29 07:52:20 +00:00
pierventre
16ff3291a8 [SDFAB-1100] In-order flowrule processing
Extends the FlowRuleService and its api by adding in-order processing
capabilities. This is achieved by introducing stripe key as way to
indicate how to process the flowrules. Key is an object which is used
to select a specific executor. Operations having the same key is guaranteed
that will be processed by the same executor.

Change-Id: I5ab4d42e8a2b8cb869f3dc2305dbc5084d31f08b
(cherry picked from commit 07af21d9e116414b74152dc812cc980ca2c4c0a5)
2022-03-29 06:46:27 +00:00
Yi Tseng
0926513a15 [SDFAB-1147] Encode P4Runtime messages with canonical byte string
In ONOS, we still use non-canonical byte strings when sending P4Runtime
write requests.

Ref: https://p4.org/p4-spec/p4runtime/v1.3.0/P4Runtime-Spec.html#sec-bytestrings

Change-Id: I27d7977660bea462de82ebe2a4cb5d14500d3b69
(cherry picked from commit 3821399aee849c2a6a334fdb16bfa6b5f8f6dcc5)
2022-03-28 18:18:33 +00:00
pierventre
3ef744bf98 [SDFAB-1136] Remove meter mirror
There is no valid reason to have it in the p4rtmeterprogrammable:
- some devices cannot guarantee r/w symmetry
- meters can be only modified
- removal is a modify with default values

Change-Id: I6d859f2d65195f3e7068390fee5e3a943972cac5
2022-03-25 08:26:09 +00:00
pierventre
386f5ca225 [SDFAB-1100] Fix flow removal logic
If the store is already in sync re-issueing a batch
request is dangerous (race with conflictual writes)
and wrong. In this case, if the device is still reporting
the flow, it is enough to send a flow removal directly.

Instead, if the flow is expired it is important to update
the store accordingly and then issue a flow removal as
consequence of the batch request.

Change-Id: I11a595e0a91f0efdc1cac3bf1d589a5108f1ae06
2022-03-24 20:10:24 +00:00
Jian Li
dc08c95eed Fix: add physnet patch-ports related rules on kubevirt node completion
Change-Id: I51caa6f923583d48ce7580e9f6b2e811ace6e055
(cherry picked from commit 6d2dd5aa6c8f1b98dcbc549d7bf0d2858cf981e0)
2022-03-23 13:37:03 +00:00
Daniel Park
9955d58c27 Enhance the logic for retrieving peer router mac to come up with the case that the switch interface is disabled.
Change-Id: Ide10c44e88c2312ba2bcb86afbf23a26b36c0d02
2022-03-23 10:21:04 +00:00
Daniele Moro
31faf955a8 Add slice meter to upf programmable driver behaviour
Also, TC in terminations entities is now required when not dropping.

Change-Id: Ia7e371376ca4f61564ba52a1e8c85a0ff76bb202
(cherry picked from commit b471bd19a7d116e201798509f9bc819664f1ac8d)
2022-03-22 10:25:54 +00:00
alessio
a35ab8a5ed Definition of new annotations to be used for upcoming OpenConfig drivers.
Change-Id: Ie097a5ed6dac018751584c6b39357f108ebc805a
2022-03-18 17:08:23 +00:00
Daniele Moro
ed04b5438e Run maven in batch and quite mode during maven artifacts upload
This will give us a much cleaner output in CI.

Change-Id: If3182f1baead52673fb137663c95d7ee3d6a8cf5
(cherry picked from commit 7c92e07b4288d1319eb8fa917bbfd92f8f1d987a)
2022-03-17 17:25:21 +00:00
Daniel Park
40ecb2a347 Fix KubevirtNode app to deal with the case that the external network is type VLAN, but the gateway node ovs owns untagged interface.
Change-Id: I315114fd2f160749154af60ad47c166398cd199a
2022-03-17 12:49:45 +00:00
Jian Li
14968b521f Add kubevirt port on receive of VM update event if port not found
Change-Id: I8be4065de241e1ff9b0631c2b5c16fbcc33c097c
(cherry picked from commit 5c6cf8f516ea7ff9c76376dd9197de007fbd0fad)
2022-03-16 06:26:23 +00:00
Jian Li
1a949b3cb6 Make the logging level to debug to mitigate verbose message of ovsdb
Change-Id: I1abcfc5d36fe63e8365168036134723219465086
2022-03-06 09:40:58 +00:00
pierventre
f1edda9de6 Filter out meters default config
There is no need to further process meters default
config in ONOS, there will not be any trace in the
ONOS stores. Filtering out in advance allows to save
memory and time.

Change-Id: I57f598aba3f2ba32923e8170f6c47f9efe27edd4
2022-03-05 04:15:42 +00:00
pierventre
d047b14fa0 [SDFAB-726] Improve logging in the ECFlowRuleStore
Currently, we are not able to understand what's exactly went
wrong on the new master and is preventing to activate the
new term. This build improves logging and move to WARN some
useful error prints

Change-Id: Ia00d65dd4fb9ff70d60ccdac3f39882f3c916814
2022-03-05 01:44:54 +00:00
Carmelo Cascone
600ffd27e2 Allow building UpfApplication matching only on slice_id
According to the UP4 logical pipeline, the only required match field is
slice_id. All other fields are ternary, hence optional.

Change-Id: I265b43621d6469087e57fda5eb6a4ba350853e9d
(cherry picked from commit ee60f76ae19abeb2162315dd141ce44233880076)
2022-03-04 22:11:44 +00:00
Jian Li
8944d7c1c9 Fix: resolve a NPE if the VM is not attached with any interfaces
Change-Id: Ia9bf16e0e9871dc0deb18b80947231b5405ad55f
(cherry picked from commit a7c909adc6571db794b8df893748e2cccaed9715)
2022-03-03 12:25:35 +00:00
pierventre
14a76e72a7 Improve Mastership logging
Logs only meaningful mastership changes

Change-Id: Ibbe4f85526df01b3c1b6eab317a2c15716098d80
2022-03-03 01:46:40 +00:00
pierventre
309d98e8e3 Introduce allowlist for back to back duplicate events
If there are two duplicate back to back role requests
DeviceTaskExectur drops the duplicate response if they
are spaced by an interval < 1s. This patch introduces an
allowlist for event types that should not be dropped
by the back to back policy.

This patch fixes one scenario that led to SDFAB-1025

Change-Id: Ic62ba56228c9c0c2b368e8e68ff50d11e2dc4249
2022-03-02 22:46:49 +00:00
senthil
9d33aa21d2 SNMPv3 protocol support for onos.
Implement RFC-rfc3414 standard.

Change-Id: Ibe8d10aaaf569274b922a7500ed237a9813c0428
2022-03-01 18:11:09 +00:00
pierventre
eaf483b726 Fix availability checks in GDP
Checks if the expected pipeline is set and if the pipeline is READY

Change-Id: Ief210c91b44f500eca8d79ebeb4e79766c25fdfe
2022-02-26 01:20:47 +00:00
pierventre
1c18ee5c26 [SDFAB-1015] Use gNOI to probe reachability and increase short timeouts
p4runtime probe reachability is based on GetPipelineConfig gRPC that
can timeout if we are setting in parallel the pipeline: the two requests
concur for the same lock. For our purposes it is enough to check if the
device is still there; for this reason stratum handshaker now relies
on gNOI reachability which is based on getTime RPC.

Additionally increase short timeouts: we have consistenly measured a
time of 14s to push the pipeline on the new QS devices.

Change-Id: I8837540241d8a68f648e47ae165ea53a2d0a865c
2022-02-25 06:27:00 +00:00
pierventre
d8d4025897 [SDFAB-1006] Purge groups and flows failed
With the persistence mastership in place the stats are no longer
discarded because of the lack of a master. This change introduces
further checks based on the availability. Additionally, it purges
the pending groups map which was leaking memory.

Change-Id: I6b0d127bf9a247d7981871f02847f6e2f4074182
2022-02-25 01:01:28 +00:00
pierventre
bc91cea9de [SDFAB-1015] Introduce gracePeriod and defer mastership check
For some devices like p4rt devices which are first registered
and then updated does not make sense to check the reachability
asap: connection is established concurently to the mastership
checks and the channel might not be ready.

Change-Id: I5a31e09cf382df388a473af338eb72fb9a187fa8
2022-02-25 00:30:01 +00:00
pierventre
116992a795 [SDFAB-1014] Pending flows and missing groups in the GroupStore
A race condition in the audit logic causes groups being stuck forever
on pending audit. These groups are basically lost forever and due to this
the flows pointing to these groups cannot be installed.

Additionally, improve logging in the DistributedGroupStore

Change-Id: Id241079d1a33ff3f7482ac72d075eeded6d920df
2022-02-24 23:57:09 +00:00