1 .. _ocpplugin-dev-guide:
3 OCP Plugin Developer Guide
4 ==========================
6 This document is intended for both OCP (ORI [Open Radio Interface] C&M
7 [Control and Management] Protocol) agent developers and OpenDaylight
8 service/application developers. It describes essential information
9 needed to implement an OCP agent that is capable of interoperating with
10 the OCP plugin running in OpenDaylight, including the OCP connection
11 establishment and state machines used on both ends of the connection. It
12 also provides a detailed description of the northbound/southbound APIs
13 that the OCP plugin exposes to allow automation and programmability.
18 OCP is an ETSI standard protocol for control and management of Remote
19 Radio Head (RRH) equipment. The OCP Project addresses the need for a
20 southbound plugin that allows applications and controller services to
21 interact with RRHs using OCP. The OCP southbound plugin will allow
22 applications acting as a Radio Equipment Control (REC) to interact with
23 RRHs that support an OCP agent.
25 .. figure:: ./images/ocpplugin/ocp-sb-plugin.jpg
26 :alt: OCP southbound plugin
33 OCP is a vendor-neutral standard communications interface defined to
34 enable control and management between RE and REC of an ORI architecture.
35 The OCP Plugin supports the implementation of the OCP specification; it
36 is based on the Model Driven Service Abstraction Layer (MD-SAL)
39 The OCP Plugin project consists of three main components: OCP southbound
40 plugin, OCP protocol library and OCP service. For details on each of
41 them, refer to the OCP Plugin User Guide.
43 .. figure:: ./images/ocpplugin/plugin-design.jpg
44 :alt: Overall architecture
48 Connection Establishment
49 ------------------------
51 The OCP layer is transported over a TCP/IP connection established
52 between the RE and the REC. OCP provides the following functions:
54 - Control & Management of the RE by the REC
56 - Transport of AISG/3GPP Iuant Layer 7 messages and alarms between REC
62 Hello message is used by the OCP agent during connection setup. It is
63 used for version negotiation. When the connection is established, the
64 OCP agent immediately sends a Hello message with the version field set
65 to highest OCP version supported by itself, along with the verdor ID and
66 serial number of the radio head it is running on.
68 The combinaiton of the verdor ID and serial number will be used by the
69 OCP plugin to uniquely identify a managed radio head. When not receiving
70 reply from the OCP plugin, the OCP agent can resend Hello message with
71 pre-defined Hello timeout (THLO) and Hello resend times (NHLO).
73 According to ORI spec, the default value of TCP Link Monitoring Timer
74 (TTLM) is 50 seconds. The RE shall trigger an OCP layer restart while
75 TTLM expires in RE or the RE detects a TCP link failure. So we may
76 define NHLO \* THLO = 50 seconds (e.g. NHLO = 10, THLO = 5 seconds).
78 By nature the Hello message is a new type of indication, and it contains
79 supported OCP version, vendor ID and serial number as shown below.
85 <?xml version="1.0" encoding="UTF-8"?>
86 <msg xmlns="http://uri.etsi.org/ori/002-2/v4.1.1">
88 <msgType>IND</msgType>
93 <version>4.1.1</version>
94 <vendorId>XYZ</vendorId>
95 <serialNumber>ABC123</serialNumber>
103 Hello from the OCP agent will always make the OCP plugin respond with
104 ACK. In case everything is OK, it will be ACK(OK). In case something is
105 wrong, it will be ACK(FAIL).
107 If the OCP agent receives ACK(OK), it goes to Established state. If the
108 OCP agent receives ACK(FAIL), it goes to Maintenance state. The failure
109 code and reason of ACK(FAIL) are defined as below:
111 - FAIL\_OCP\_VERSION (OCP version not supported)
113 - FAIL\_NO\_MORE\_CAPACITY (OCP plugin cannot control any more radio
116 The result inside Ack message indicates OK or FAIL with different
123 <?xml version="1.0" encoding="UTF-8"?>
124 <msg xmlns="http://uri.etsi.org/ori/002-2/v4.1.1">
126 <msgType>ACK</msgType>
131 <result>FAIL_OCP_VERSION</result>
139 The following figures illustrate the Finite State Machine (FSM) of the
140 OCP agent and OCP plugin for new connection procedure.
142 .. figure:: ./images/ocpplugin/ocpagent-state-machine.jpg
143 :alt: OCP agent state machine
145 OCP agent state machine
147 .. figure:: ./images/ocpplugin/ocpplugin-state-machine.jpg
148 :alt: OCP plugin state machine
150 OCP plugin state machine
155 There are ten exposed northbound APIs: health-check, set-time, re-reset,
156 get-param, modify-param, create-obj, delete-obj, get-state, modify-state
162 The Health Check procedure allows the application to verify that the OCP
163 layer is functioning correctly at the RE.
166 http://localhost:8181/restconf/operations/ocp-service:health-check-nb
171 +--------------------+----------+--------------------+--------------------+----------+
172 | Field Name | Type | Description | Example | Required |
174 +====================+==========+====================+====================+==========+
175 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
176 | | | reference for OCP | | |
177 | | | radio head | | |
178 +--------------------+----------+--------------------+--------------------+----------+
179 | tcpLinkMonTimeout | unsigned | TCP Link | 50 | Yes |
180 | | Short | Monitoring Timeout | | |
181 | | | (unit: seconds) | | |
182 +--------------------+----------+--------------------+--------------------+----------+
191 "nodeId": "ocp:MTI-101-200",
192 "tcpLinkMonTimeout": "50"
200 +--------------------+--------------------+--------------------------------------+
201 | Field Name | Type | Description |
202 +====================+====================+======================================+
203 | result | String, enumerated | Common default result codes |
204 +--------------------+--------------------+--------------------------------------+
219 The Set Time procedure allows the application to set/update the absolute
220 time reference that shall be used by the RE.
223 http://localhost:8181/restconf/operations/ocp-service:set-time-nb
228 +------------+------------+----------------------+----------------------+------------+
229 | Field Name | Type | Description | Example | Required? |
230 +============+============+======================+======================+============+
231 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
232 | | | reference for OCP | | |
233 | | | radio head | | |
234 +------------+------------+----------------------+----------------------+------------+
235 | newTime | dateTime | New datetime setting | 2016-04-26T10:23:00- | Yes |
236 | | | for radio head | 05:00 | |
237 +------------+------------+----------------------+----------------------+------------+
246 "nodeId": "ocp:MTI-101-200",
247 "newTime": "2016-04-26T10:23:00-05:00"
255 +--------------------+--------------------+--------------------------------------+
256 | Field Name | Type | Description |
257 +====================+====================+======================================+
258 | result | String, enumerated | Common default result codes + |
259 | | | FAIL\_INVALID\_TIMEDATA |
260 +--------------------+--------------------+--------------------------------------+
275 The RE Reset procedure allows the application to reset a specific RE.
278 http://localhost:8181/restconf/operations/ocp-service:re-reset-nb
283 +------------+------------+----------------------+----------------------+------------+
284 | Field Name | Type | Description | Example | Required? |
285 +============+============+======================+======================+============+
286 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
287 | | | reference for OCP | | |
288 | | | radio head | | |
289 +------------+------------+----------------------+----------------------+------------+
298 "nodeId": "ocp:MTI-101-200"
306 +--------------------+--------------------+--------------------------------------+
307 | Field Name | Type | Description |
308 +====================+====================+======================================+
309 | result | String, enumerated | Common default result codes |
310 +--------------------+--------------------+--------------------------------------+
325 The Object Parameter Reporting procedure allows the application to
326 retrieve the following information:
328 1. the defined object types and instances within the Resource Model of
331 2. the values of the parameters of the objects
334 http://localhost:8181/restconf/operations/ocp-service:get-param-nb
339 +------------+------------+----------------------+----------------------+------------+
340 | Field Name | Type | Description | Example | Required? |
341 +============+============+======================+======================+============+
342 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
343 | | | reference for OCP | | |
344 | | | radio head | | |
345 +------------+------------+----------------------+----------------------+------------+
346 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
347 +------------+------------+----------------------+----------------------+------------+
348 | paramName | String | Parameter name | dataLink | Yes |
349 +------------+------------+----------------------+----------------------+------------+
358 "nodeId": "ocp:MTI-101-200",
359 "objId": "RxSigPath_5G:1",
360 "paramName": "dataLink"
368 +--------------------+--------------------+--------------------------------------+
369 | Field Name | Type | Description |
370 +====================+====================+======================================+
371 | id | String | Object ID |
372 +--------------------+--------------------+--------------------------------------+
373 | name | String | Object parameter name |
374 +--------------------+--------------------+--------------------------------------+
375 | value | String | Object parameter value |
376 +--------------------+--------------------+--------------------------------------+
377 | result | String, enumerated | Common default result codes + |
378 | | | "FAIL\_UNKNOWN\_OBJECT", |
379 | | | "FAIL\_UNKNOWN\_PARAM" |
380 +--------------------+--------------------+--------------------------------------+
390 "id": "RxSigPath_5G:1",
394 "value": "dataLink:1"
406 The Object Parameter Modification procedure allows the application to
407 configure the values of the parameters of the objects identified by the
411 http://localhost:8181/restconf/operations/ocp-service:modify-param-nb
416 +------------+------------+----------------------+----------------------+------------+
417 | Field Name | Type | Description | Example | Required? |
418 +============+============+======================+======================+============+
419 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
420 | | | reference for OCP | | |
421 | | | radio head | | |
422 +------------+------------+----------------------+----------------------+------------+
423 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
424 +------------+------------+----------------------+----------------------+------------+
425 | name | String | Object parameter | dataLink | Yes |
427 +------------+------------+----------------------+----------------------+------------+
428 | value | String | Object parameter | dataLink:1 | Yes |
430 +------------+------------+----------------------+----------------------+------------+
439 "nodeId": "ocp:MTI-101-200",
440 "objId": "RxSigPath_5G:1",
444 "value": "dataLink:1"
454 +--------------------+--------------------+--------------------------------------+
455 | Field Name | Type | Description |
456 +====================+====================+======================================+
457 | objId | String | Object ID |
458 +--------------------+--------------------+--------------------------------------+
459 | globResult | String, enumerated | Common default result codes + |
460 | | | "FAIL\_UNKNOWN\_OBJECT", |
461 | | | "FAIL\_PARAMETER\_FAIL", |
462 | | | "FAIL\_NOSUCH\_RESOURCE" |
463 +--------------------+--------------------+--------------------------------------+
464 | name | String | Object parameter name |
465 +--------------------+--------------------+--------------------------------------+
466 | result | String, enumerated | "SUCCESS", "FAIL\_UNKNOWN\_PARAM", |
467 | | | "FAIL\_PARAM\_READONLY", |
468 | | | "FAIL\_PARAM\_LOCKREQUIRED", |
469 | | | "FAIL\_VALUE\_OUTOF\_RANGE", |
470 | | | "FAIL\_VALUE\_TYPE\_ERROR" |
471 +--------------------+--------------------+--------------------------------------+
479 "objId": "RxSigPath_5G:1",
480 "globResult": "SUCCESS",
493 The Object Creation procedure allows the application to create and
494 initialize a new instance of the given object type on the RE.
497 http://localhost:8181/restconf/operations/ocp-service:create-obj-nb
502 +------------+------------+----------------------+----------------------+------------+
503 | Field Name | Type | Description | Example | Required? |
504 +============+============+======================+======================+============+
505 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
506 | | | reference for OCP | | |
507 | | | radio head | | |
508 +------------+------------+----------------------+----------------------+------------+
509 | objType | String | Object type | RxSigPath\_5G | Yes |
510 +------------+------------+----------------------+----------------------+------------+
511 | name | String | Object parameter | dataLink | No |
513 +------------+------------+----------------------+----------------------+------------+
514 | value | String | Object parameter | dataLink:1 | No |
516 +------------+------------+----------------------+----------------------+------------+
525 "nodeId": "ocp:MTI-101-200",
526 "objType": "RxSigPath_5G",
530 "value": "dataLink:1"
540 +--------------------+--------------------+--------------------------------------+
541 | Field Name | Type | Description |
542 +====================+====================+======================================+
543 | objId | String | Object ID |
544 +--------------------+--------------------+--------------------------------------+
545 | globResult | String, enumerated | Common default result codes + |
546 | | | "FAIL\_UNKNOWN\_OBJTYPE", |
547 | | | "FAIL\_STATIC\_OBJTYPE", |
548 | | | "FAIL\_UNKNOWN\_OBJECT", |
549 | | | "FAIL\_CHILD\_NOTALLOWED", |
550 | | | "FAIL\_OUTOF\_RESOURCES" |
551 | | | "FAIL\_PARAMETER\_FAIL", |
552 | | | "FAIL\_NOSUCH\_RESOURCE" |
553 +--------------------+--------------------+--------------------------------------+
554 | name | String | Object parameter name |
555 +--------------------+--------------------+--------------------------------------+
556 | result | String, enumerated | "SUCCESS", "FAIL\_UNKNOWN\_PARAM", |
557 | | | "FAIL\_PARAM\_READONLY", |
558 | | | "FAIL\_PARAM\_LOCKREQUIRED", |
559 | | | "FAIL\_VALUE\_OUTOF\_RANGE", |
560 | | | "FAIL\_VALUE\_TYPE\_ERROR" |
561 +--------------------+--------------------+--------------------------------------+
569 "objId": "RxSigPath_5G:0",
570 "globResult": "SUCCESS",
583 The Object Deletion procedure allows the application to delete a given
584 object instance and recursively its entire child objects on the RE.
587 http://localhost:8181/restconf/operations/ocp-service:delete-obj-nb
592 +------------+------------+----------------------+----------------------+------------+
593 | Field Name | Type | Description | Example | Required? |
594 +============+============+======================+======================+============+
595 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
596 | | | reference for OCP | | |
597 | | | radio head | | |
598 +------------+------------+----------------------+----------------------+------------+
599 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
600 +------------+------------+----------------------+----------------------+------------+
609 "nodeId": "ocp:MTI-101-200",
610 "obj-id": "RxSigPath_5G:0"
618 +--------------------+--------------------+--------------------------------------+
619 | Field Name | Type | Description |
620 +====================+====================+======================================+
621 | result | String, enumerated | Common default result codes + |
622 | | | "FAIL\_UNKNOWN\_OBJECT", |
623 | | | "FAIL\_STATIC\_OBJTYPE", |
624 | | | "FAIL\_LOCKREQUIRED" |
625 +--------------------+--------------------+--------------------------------------+
640 The Object State Reporting procedure allows the application to acquire
641 the current state (for the requested state type) of one or more objects
642 of the RE resource model, and additionally configure event-triggered
643 reporting of the detected state changes for all state types of the
647 http://localhost:8181/restconf/operations/ocp-service:get-state-nb
652 +--------------------+----------+--------------------+--------------------+----------+
653 | Field Name | Type | Description | Example | Required |
655 +====================+==========+====================+====================+==========+
656 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
657 | | | reference for OCP | | |
658 | | | radio head | | |
659 +--------------------+----------+--------------------+--------------------+----------+
660 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
661 +--------------------+----------+--------------------+--------------------+----------+
662 | stateType | String, | Valid values: | ALL | Yes |
663 | | enumerat | "AST", "FST", | | |
665 +--------------------+----------+--------------------+--------------------+----------+
666 | eventDrivenReporti | Boolean | Event-triggered | true | Yes |
667 | ng | | reporting of state | | |
669 +--------------------+----------+--------------------+--------------------+----------+
678 "nodeId": "ocp:MTI-101-200",
679 "objId": "antPort:0",
681 "eventDrivenReporting": "true"
689 +--------------------+--------------------+--------------------------------------+
690 | Field Name | Type | Description |
691 +====================+====================+======================================+
692 | id | String | Object ID |
693 +--------------------+--------------------+--------------------------------------+
694 | type | String, enumerated | State type. Valid values: "AST", |
696 +--------------------+--------------------+--------------------------------------+
697 | value | String, enumerated | State value. Valid values: For state |
698 | | | type = "AST": "LOCKED", "UNLOCKED". |
699 | | | For state type = "FST": |
700 | | | "PRE\_OPERATIONAL", "OPERATIONAL", |
701 | | | "DEGRADED", "FAILED", |
702 | | | "NOT\_OPERATIONAL", "DISABLED" |
703 +--------------------+--------------------+--------------------------------------+
704 | result | String, enumerated | Common default result codes + |
705 | | | "FAIL\_UNKNOWN\_OBJECT", |
706 | | | "FAIL\_UNKNOWN\_STATETYPE", |
707 | | | "FAIL\_VALUE\_OUTOF\_RANGE" |
708 +--------------------+--------------------+--------------------------------------+
738 The Object State Modification procedure allows the application to
739 trigger a change in the state of an object of the RE Resource Model.
742 http://localhost:8181/restconf/operations/ocp-service:modify-state-nb
747 +------------+------------+----------------------+----------------------+------------+
748 | Field Name | Type | Description | Example | Required? |
749 +============+============+======================+======================+============+
750 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
751 | | | reference for OCP | | |
752 | | | radio head | | |
753 +------------+------------+----------------------+----------------------+------------+
754 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
755 +------------+------------+----------------------+----------------------+------------+
756 | stateType | String, | Valid values: "AST", | AST | Yes |
757 | | enumerated | "FST", "ALL" | | |
758 +------------+------------+----------------------+----------------------+------------+
759 | stateValue | String, | Valid values: For | LOCKED | Yes |
760 | | enumerated | state type = "AST": | | |
761 | | | "LOCKED", | | |
762 | | | "UNLOCKED". For | | |
763 | | | state type = "FST": | | |
764 | | | "PRE\_OPERATIONAL", | | |
765 | | | "OPERATIONAL", | | |
766 | | | "DEGRADED", | | |
767 | | | "FAILED", | | |
768 | | | "NOT\_OPERATIONAL", | | |
769 | | | "DISABLED" | | |
770 +------------+------------+----------------------+----------------------+------------+
779 "nodeId": "ocp:MTI-101-200",
780 "objId": "RxSigPath_5G:1",
782 "stateValue": "LOCKED"
790 +--------------------+--------------------+--------------------------------------+
791 | Field Name | Type | Description |
792 +====================+====================+======================================+
793 | objId | String | Object ID |
794 +--------------------+--------------------+--------------------------------------+
795 | stateType | String, enumerated | State type. Valid values: "AST", |
797 +--------------------+--------------------+--------------------------------------+
798 | stateValue | String, enumerated | State value. Valid values: For state |
799 | | | type = "AST": "LOCKED", "UNLOCKED". |
800 | | | For state type = "FST": |
801 | | | "PRE\_OPERATIONAL", "OPERATIONAL", |
802 | | | "DEGRADED", "FAILED", |
803 | | | "NOT\_OPERATIONAL", "DISABLED" |
804 +--------------------+--------------------+--------------------------------------+
805 | result | String, enumerated | Common default result codes + |
806 | | | "FAIL\_UNKNOWN\_OBJECT", |
807 | | | "FAIL\_UNKNOWN\_STATETYPE", |
808 | | | "FAIL\_UNKNOWN\_STATEVALUE", |
809 | | | "FAIL\_STATE\_READONLY", |
810 | | | "FAIL\_RESOURCE\_UNAVAILABLE", |
811 | | | "FAIL\_RESOURCE\_INUSE", |
812 | | | "FAIL\_PARENT\_CHILD\_CONFLICT", |
813 | | | "FAIL\_PRECONDITION\_NOTMET |
814 +--------------------+--------------------+--------------------------------------+
822 "objId": "RxSigPath_5G:1",
824 "stateValue": "LOCKED",
832 The Fault Reporting procedure allows the application to acquire
833 information about all current active faults associated with a primary
834 object, as well as configure the RE to report when the fault status
835 changes for any of faults associated with the indicated primary object.
838 http://localhost:8181/restconf/operations/ocp-service:get-fault-nb
843 +------------+------------+----------------------+----------------------+------------+
844 | Field Name | Type | Description | Example | Required? |
845 +============+============+======================+======================+============+
846 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
847 | | | reference for OCP | | |
848 | | | radio head | | |
849 +------------+------------+----------------------+----------------------+------------+
850 | objId | String | Object ID | RE:0 | Yes |
851 +------------+------------+----------------------+----------------------+------------+
852 | eventDrive | Boolean | Event-triggered | true | Yes |
853 | nReporting | | reporting of fault | | |
854 +------------+------------+----------------------+----------------------+------------+
863 "nodeId": "ocp:MTI-101-200",
865 "eventDrivenReporting": "true"
873 +--------------------+--------------------+--------------------------------------+
874 | Field Name | Type | Description |
875 +====================+====================+======================================+
876 | result | String, enumerated | Common default result codes + |
877 | | | "FAIL\_UNKNOWN\_OBJECT", |
878 | | | "FAIL\_VALUE\_OUTOF\_RANGE" |
879 +--------------------+--------------------+--------------------------------------+
880 | id (obj) | String | Object ID |
881 +--------------------+--------------------+--------------------------------------+
882 | id (fault) | String | Fault ID |
883 +--------------------+--------------------+--------------------------------------+
884 | severity | String | Fault severity |
885 +--------------------+--------------------+--------------------------------------+
886 | timestamp | dateTime | Time stamp |
887 +--------------------+--------------------+--------------------------------------+
888 | descr | String | Text description |
889 +--------------------+--------------------+--------------------------------------+
890 | affectedObj | String | Affected object |
891 +--------------------+--------------------+--------------------------------------+
905 "id": "FAULT_OVERTEMP",
906 "severity": "DEGRADED",
907 "timestamp": "2012-02-12T16:35:00",
908 "descr": "PA temp too high; Pout reduced",
915 "id": "FAULT_VSWR_OUTOF_RANGE",
916 "severity": "WARNING",
917 "timestamp": "2012-02-12T16:01:05",
927 The northbound APIs described above wrap the southbound APIs to make
928 them accessible to external applications via RESTCONF, as well as
929 take care of synchronizing the RE resource model between radio heads
930 and the controller’s datastore. See
931 applications/ocp-service/src/main/yang/ocp-resourcemodel.yang for
932 the yang representation of the RE resource model.
934 Java Interfaces (Southbound APIs)
935 ---------------------------------
937 The southbound APIs provide concrete implementation of the following OCP
938 elementary functions: health-check, set-time, re-reset, get-param,
939 modify-param, create-obj, delete-obj, get-state, modify-state and
940 get-fault. Any OpenDaylight services/applications (of course, including
941 OCP service) wanting to speak OCP to radio heads will need to use them.
946 Interface SalDeviceMgmtService defines three methods corresponding to
947 health-check, set-time and re-reset.
949 **SalDeviceMgmtService.java.**
953 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.device.mgmt.rev150811;
955 public interface SalDeviceMgmtService
960 Future<RpcResult<HealthCheckOutput>> healthCheck(HealthCheckInput input);
962 Future<RpcResult<SetTimeOutput>> setTime(SetTimeInput input);
964 Future<RpcResult<ReResetOutput>> reReset(ReResetInput input);
971 Interface SalConfigMgmtService defines two methods corresponding to
972 get-param and modify-param.
974 **SalConfigMgmtService.java.**
978 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.config.mgmt.rev150811;
980 public interface SalConfigMgmtService
985 Future<RpcResult<GetParamOutput>> getParam(GetParamInput input);
987 Future<RpcResult<ModifyParamOutput>> modifyParam(ModifyParamInput input);
991 SalObjectLifecycleService
992 ~~~~~~~~~~~~~~~~~~~~~~~~~
994 Interface SalObjectLifecycleService defines two methods corresponding to
995 create-obj and delete-obj.
997 **SalObjectLifecycleService.java.**
1001 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.lifecycle.rev150811;
1003 public interface SalObjectLifecycleService
1008 Future<RpcResult<CreateObjOutput>> createObj(CreateObjInput input);
1010 Future<RpcResult<DeleteObjOutput>> deleteObj(DeleteObjInput input);
1014 SalObjectStateMgmtService
1015 ~~~~~~~~~~~~~~~~~~~~~~~~~
1017 Interface SalObjectStateMgmtService defines two methods corresponding to
1018 get-state and modify-state.
1020 **SalObjectStateMgmtService.java.**
1024 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.state.mgmt.rev150811;
1026 public interface SalObjectStateMgmtService
1031 Future<RpcResult<GetStateOutput>> getState(GetStateInput input);
1033 Future<RpcResult<ModifyStateOutput>> modifyState(ModifyStateInput input);
1040 Interface SalFaultMgmtService defines only one method corresponding to
1043 **SalFaultMgmtService.java.**
1047 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.fault.mgmt.rev150811;
1049 public interface SalFaultMgmtService
1054 Future<RpcResult<GetFaultOutput>> getFault(GetFaultInput input);
1061 In addition to indication messages, the OCP southbound plugin will
1062 translate specific events (e.g., connect, disconnect) coming up from the
1063 OCP protocol library into MD-SAL Notification objects and then publish
1064 them to the MD-SAL. Also, the OCP service will notify the completion of
1065 certain operation via Notification as well.
1067 SalDeviceMgmtListener
1068 ~~~~~~~~~~~~~~~~~~~~~
1070 An onDeviceConnected Notification will be published to the MD-SAL as
1071 soon as a radio head is connected to the controller, and when that radio
1072 head is disconnected the OCP southbound plugin will publish an
1073 onDeviceDisconnected Notification in response to the disconnect event
1074 propagated from the OCP protocol library.
1076 **SalDeviceMgmtListener.java.**
1080 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.device.mgmt.rev150811;
1082 public interface SalDeviceMgmtListener
1084 NotificationListener
1087 void onDeviceConnected(DeviceConnected notification);
1089 void onDeviceDisconnected(DeviceDisconnected notification);
1096 The OCP service will publish an onAlignmentCompleted Notification to the
1097 MD-SAL once it has completed the OCP alignment procedure with the radio
1100 **OcpServiceListener.java.**
1104 package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ocp.applications.ocp.service.rev150811;
1106 public interface OcpServiceListener
1108 NotificationListener
1111 void onAlignmentCompleted(AlignmentCompleted notification);
1115 SalObjectStateMgmtListener
1116 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1118 When receiving a state change indication message, the OCP southbound
1119 plugin will propagate the indication message to upper layer
1120 services/applications by publishing a corresponding onStateChangeInd
1121 Notification to the MD-SAL.
1123 **SalObjectStateMgmtListener.java.**
1127 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.state.mgmt.rev150811;
1129 public interface SalObjectStateMgmtListener
1131 NotificationListener
1134 void onStateChangeInd(StateChangeInd notification);
1138 SalFaultMgmtListener
1139 ~~~~~~~~~~~~~~~~~~~~
1141 When receiving a fault indication message, the OCP southbound plugin
1142 will propagate the indication message to upper layer
1143 services/applications by publishing a corresponding onFaultInd
1144 Notification to the MD-SAL.
1146 **SalFaultMgmtListener.java.**
1150 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.fault.mgmt.rev150811;
1152 public interface SalFaultMgmtListener
1154 NotificationListener
1157 void onFaultInd(FaultInd notification);