  The heterogeneity of use cases that next-generation wireless systems need to
support calls for flexible and programmable networks that can autonomously
adapt to the application requirements. Specifically, traffic flows that support
critical applications (e.g., vehicular control or safety communications) often
come with a requirement in terms of guaranteed performance. At the same time,
others are more elastic and can adapt to the resources made available by the
network (e.g., video streaming). To this end, the Open Radio Access Network
(RAN) paradigm is seen as an enabler of dynamic control and adaptation of the
protocol stack of 3rd Generation Partnership Project (3GPP) networks in the 5th
Generation (5G) and beyond. Through its embodiment in the O-RAN alliance
specifications, it introduces the Ran Intelligent Controllers (RICs), which
enable closed-loop control, leveraging a rich set of RAN Key Performance
Measurements (KPMs) to build a representation of the network and enforcing
dynamic control through the configuration of 3GPP-defined stack parameters. In
this paper, we leverage the Open RAN closed-loop control capabilities to
design, implement, and evaluate multiple data-driven and dynamic Service Level
Agreement (SLA) enforcement policies, capable of adapting the RAN
semi-persistent scheduling patterns to match users requirements. To do so, we
implement semi-persistent scheduling capabilities in the OpenAirInterface (OAI)
5G stack, as well as an easily extensible and customizable version of the Open
RAN E2 interface that connects the OAI base stations to the near-real-time RIC.
We deploy and test our framework on Colosseum, a large-scale
hardware-in-the-loop channel emulator. Results confirm the effectiveness of the
proposed Open RAN-based solution in managing SLA in near-real-time.
