.. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
.. SPDX-License-Identifier: Apache-2.0

1.1.1
=====

This release includes the following changes:

- P4-UPF:

  - Fix an issue that was causing UE traffic to be dropped after restarting PFCP-Agent
  - Allow configuration of slice rate limits via PFCP-Agent REST APIs
  - Clean up app filter IDs when they are no longer used

- ONOS:

  - Support canonical representation of byte-strings for outgoing P4Runtime messages
  - Support for in-order operations in the FlowRuleService

Known Limitations
-----------------
- Support for slice rate limits in P4-UPF comes with the following limitations
  that will be removed in SD-Fabric 1.2:

  - We only support setting the same rate for downlink and uplink. When different
    rates are provided using PFCP-Agent REST APIs, we pick the highest between
    downlink and uplink.
  - When using topologies with paired-leaves, if UE traffic is forwarded through
    the pair link, the slice rate limit will be enforced on the aggregate of
    uplink and downlink traffic. This can happen when the base station and/or
    the edge server/upstream router are not dual-homed. If all endpoints are
    dual-homed, then UE traffic if expected to use the pair link only in case of
    failures.

Component Versions
------------------

SD-Fabric ONOS
^^^^^^^^^^^^^^
- Image

  - `opennetworking/sdfabric-onos <https://hub.docker.com/r/opennetworking/sdfabric-onos>`_: ``1.1.1``

- Source code

  - `onos <https://github.com/opennetworkinglab/onos>`_: ``07af21d9e116414b74152dc812cc980ca2c4c0a5`` (``onos-2.5`` branch)
  - `trellis-control <https://github.com/opennetworkinglab/trellis-control>`_: ``fe1274b0a7a2f6eaefd6266b0e2cf193875cc14c``
  - `fabric-tna <https://github.com/stratum/fabric-tna>`_: ``126aba949906ca828812ec321d6163d00c37170c``
  - `up4 <https://github.com/omec-project/up4>`_: ``187763c2ab0e68cf085e44cab0d5b67e09aa9b6b``

Stratum
^^^^^^^
- Image: `stratumproject/stratum-bfrt <https://hub.docker.com/r/stratumproject/stratum-bfrt>`_: ``22.03.01-9.7.0``
- Repo: `stratum <https://github.com/stratum/stratum>`_: ``29f391580de8d5ee2d7a207a9a4261fda4e54a6f``

DBUF
^^^^
- Image: `opennetworking/dbuf <https://hub.docker.com/r/opennetworking/dbuf>`_: ``1.0.0``
- Repo: `dbuf <https://github.com/omec-project/dbuf>`_: ``v1.0.0``

PFCP Agent
^^^^^^^^^^
- Image: `omecproject/upf-epc-pfcpiface <https://hub.docker.com/r/omecproject/upf-epc-pfcpiface>`_

    - For P4-UPF: ``master-2f04e3a``
    - For BESS-UPF: ``master-9a4d86c``

- Repo: `upf <https://github.com/omec-project/upf>`_

    - For P4-UPF: ``2f04e3abfd7ba5900e11ef03e602296f9e784f0e``
    - For BESS-UPF: ``9a4d86c654a9f60947ebf71d015d4781ed7a95a6``

BESS UPF
^^^^^^^^
- Image: `omecproject/upf-epc-bess <https://github.com/omec-project/upf>`_: ``master-9a4d86c``
- Repo: `upf <https://github.com/omec-project/upf>`_: ``9a4d86c654a9f60947ebf71d015d4781ed7a95a6``

Helm Chart Versions
-------------------
- `sdfabric <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/sdfabric>`_: ``1.1.1``

  - `onos-classic chart <https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic>`_: ``0.1.28``
  - `stratum chart <https://github.com/stratum/stratum-helm-charts/tree/master/stratum>`_: ``0.1.18``
  - `pfcp-agent chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/pfcp-agent>`_: ``0.0.14``
  - `dbuf chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/dbuf/>`_: ``0.0.4``
  - `int-host-reporter chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/int-host-reporter>`_: ``0.0.4``
  - `di-topology-watchdog chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/di-topology-watchdog>`_: ``0.0.5``
  - `di-metrics-exporter chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/di-metrics-exporter>`_: ``0.0.3``

- `bess-upf chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/bess-upf>`_: ``0.0.5``
