1 OCP Plugin Developer Guide
2 ==========================
4 This document is intended for both OCP (ORI [Open Radio Interface] C&M
5 [Control and Management] Protocol) agent developers and OpenDaylight
6 service/application developers. It describes essential information
7 needed to implement an OCP agent that is capable of interoperating with
8 the OCP plugin running in OpenDaylight, including the OCP connection
9 establishment and state machines used on both ends of the connection. It
10 also provides a detailed description of the northbound/southbound APIs
11 that the OCP plugin exposes to allow automation and programmability.
16 OCP is an ETSI standard protocol for control and management of Remote
17 Radio Head (RRH) equipment. The OCP Project addresses the need for a
18 southbound plugin that allows applications and controller services to
19 interact with RRHs using OCP. The OCP southbound plugin will allow
20 applications acting as a Radio Equipment Control (REC) to interact with
21 RRHs that support an OCP agent.
23 .. figure:: ./images/ocpplugin/ocp-sb-plugin.jpg
24 :alt: OCP southbound plugin
31 OCP is a vendor-neutral standard communications interface defined to
32 enable control and management between RE and REC of an ORI architecture.
33 The OCP Plugin supports the implementation of the OCP specification; it
34 is based on the Model Driven Service Abstraction Layer (MD-SAL)
37 The OCP Plugin project consists of three main components: OCP southbound
38 plugin, OCP protocol library and OCP service. For details on each of
39 them, refer to the OCP Plugin User Guide.
41 .. figure:: ./images/ocpplugin/plugin-design.jpg
42 :alt: Overall architecture
46 Connection Establishment
47 ------------------------
49 The OCP layer is transported over a TCP/IP connection established
50 between the RE and the REC. OCP provides the following functions:
52 - Control & Management of the RE by the REC
54 - Transport of AISG/3GPP Iuant Layer 7 messages and alarms between REC
60 Hello message is used by the OCP agent during connection setup. It is
61 used for version negotiation. When the connection is established, the
62 OCP agent immediately sends a Hello message with the version field set
63 to highest OCP version supported by itself, along with the verdor ID and
64 serial number of the radio head it is running on.
66 The combinaiton of the verdor ID and serial number will be used by the
67 OCP plugin to uniquely identify a managed radio head. When not receiving
68 reply from the OCP plugin, the OCP agent can resend Hello message with
69 pre-defined Hello timeout (THLO) and Hello resend times (NHLO).
71 According to ORI spec, the default value of TCP Link Monitoring Timer
72 (TTLM) is 50 seconds. The RE shall trigger an OCP layer restart while
73 TTLM expires in RE or the RE detects a TCP link failure. So we may
74 define NHLO \* THLO = 50 seconds (e.g. NHLO = 10, THLO = 5 seconds).
76 By nature the Hello message is a new type of indication, and it contains
77 supported OCP version, vendor ID and serial number as shown below.
83 <?xml version="1.0" encoding="UTF-8"?>
84 <msg xmlns="http://uri.etsi.org/ori/002-2/v4.1.1">
86 <msgType>IND</msgType>
91 <version>4.1.1</version>
92 <vendorId>XYZ</vendorId>
93 <serialNumber>ABC123</serialNumber>
101 Hello from the OCP agent will always make the OCP plugin respond with
102 ACK. In case everything is OK, it will be ACK(OK). In case something is
103 wrong, it will be ACK(FAIL).
105 If the OCP agent receives ACK(OK), it goes to Established state. If the
106 OCP agent receives ACK(FAIL), it goes to Maintenance state. The failure
107 code and reason of ACK(FAIL) are defined as below:
109 - FAIL\_OCP\_VERSION (OCP version not supported)
111 - FAIL\_NO\_MORE\_CAPACITY (OCP plugin cannot control any more radio
114 The result inside Ack message indicates OK or FAIL with different
121 <?xml version="1.0" encoding="UTF-8"?>
122 <msg xmlns="http://uri.etsi.org/ori/002-2/v4.1.1">
124 <msgType>ACK</msgType>
129 <result>FAIL_OCP_VERSION</result>
137 The following figures illustrate the Finite State Machine (FSM) of the
138 OCP agent and OCP plugin for new connection procedure.
140 .. figure:: ./images/ocpplugin/ocpagent-state-machine.jpg
141 :alt: OCP agent state machine
143 OCP agent state machine
145 .. figure:: ./images/ocpplugin/ocpplugin-state-machine.jpg
146 :alt: OCP plugin state machine
148 OCP plugin state machine
153 There are ten exposed northbound APIs: health-check, set-time, re-reset,
154 get-param, modify-param, create-obj, delete-obj, get-state, modify-state
160 The Health Check procedure allows the application to verify that the OCP
161 layer is functioning correctly at the RE.
164 http://localhost:8181/restconf/operations/ocp-service:health-check-nb
169 +--------------------+----------+--------------------+--------------------+----------+
170 | Field Name | Type | Description | Example | Required |
172 +====================+==========+====================+====================+==========+
173 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
174 | | | reference for OCP | | |
175 | | | radio head | | |
176 +--------------------+----------+--------------------+--------------------+----------+
177 | tcpLinkMonTimeout | unsigned | TCP Link | 50 | Yes |
178 | | Short | Monitoring Timeout | | |
179 | | | (unit: seconds) | | |
180 +--------------------+----------+--------------------+--------------------+----------+
189 "nodeId": "ocp:MTI-101-200",
190 "tcpLinkMonTimeout": "50"
198 +--------------------+--------------------+--------------------------------------+
199 | Field Name | Type | Description |
200 +====================+====================+======================================+
201 | result | String, enumerated | Common default result codes |
202 +--------------------+--------------------+--------------------------------------+
217 The Set Time procedure allows the application to set/update the absolute
218 time reference that shall be used by the RE.
221 http://localhost:8181/restconf/operations/ocp-service:set-time-nb
226 +------------+------------+----------------------+----------------------+------------+
227 | Field Name | Type | Description | Example | Required? |
228 +============+============+======================+======================+============+
229 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
230 | | | reference for OCP | | |
231 | | | radio head | | |
232 +------------+------------+----------------------+----------------------+------------+
233 | newTime | dateTime | New datetime setting | 2016-04-26T10:23:00- | Yes |
234 | | | for radio head | 05:00 | |
235 +------------+------------+----------------------+----------------------+------------+
244 "nodeId": "ocp:MTI-101-200",
245 "newTime": "2016-04-26T10:23:00-05:00"
253 +--------------------+--------------------+--------------------------------------+
254 | Field Name | Type | Description |
255 +====================+====================+======================================+
256 | result | String, enumerated | Common default result codes + |
257 | | | FAIL\_INVALID\_TIMEDATA |
258 +--------------------+--------------------+--------------------------------------+
273 The RE Reset procedure allows the application to reset a specific RE.
276 http://localhost:8181/restconf/operations/ocp-service:re-reset-nb
281 +------------+------------+----------------------+----------------------+------------+
282 | Field Name | Type | Description | Example | Required? |
283 +============+============+======================+======================+============+
284 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
285 | | | reference for OCP | | |
286 | | | radio head | | |
287 +------------+------------+----------------------+----------------------+------------+
296 "nodeId": "ocp:MTI-101-200"
304 +--------------------+--------------------+--------------------------------------+
305 | Field Name | Type | Description |
306 +====================+====================+======================================+
307 | result | String, enumerated | Common default result codes |
308 +--------------------+--------------------+--------------------------------------+
323 The Object Parameter Reporting procedure allows the application to
324 retrieve the following information:
326 1. the defined object types and instances within the Resource Model of
329 2. the values of the parameters of the objects
332 http://localhost:8181/restconf/operations/ocp-service:get-param-nb
337 +------------+------------+----------------------+----------------------+------------+
338 | Field Name | Type | Description | Example | Required? |
339 +============+============+======================+======================+============+
340 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
341 | | | reference for OCP | | |
342 | | | radio head | | |
343 +------------+------------+----------------------+----------------------+------------+
344 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
345 +------------+------------+----------------------+----------------------+------------+
346 | paramName | String | Parameter name | dataLink | Yes |
347 +------------+------------+----------------------+----------------------+------------+
356 "nodeId": "ocp:MTI-101-200",
357 "objId": "RxSigPath_5G:1",
358 "paramName": "dataLink"
366 +--------------------+--------------------+--------------------------------------+
367 | Field Name | Type | Description |
368 +====================+====================+======================================+
369 | id | String | Object ID |
370 +--------------------+--------------------+--------------------------------------+
371 | name | String | Object parameter name |
372 +--------------------+--------------------+--------------------------------------+
373 | value | String | Object parameter value |
374 +--------------------+--------------------+--------------------------------------+
375 | result | String, enumerated | Common default result codes + |
376 | | | "FAIL\_UNKNOWN\_OBJECT", |
377 | | | "FAIL\_UNKNOWN\_PARAM" |
378 +--------------------+--------------------+--------------------------------------+
388 "id": "RxSigPath_5G:1",
392 "value": "dataLink:1"
404 The Object Parameter Modification procedure allows the application to
405 configure the values of the parameters of the objects identified by the
409 http://localhost:8181/restconf/operations/ocp-service:modify-param-nb
414 +------------+------------+----------------------+----------------------+------------+
415 | Field Name | Type | Description | Example | Required? |
416 +============+============+======================+======================+============+
417 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
418 | | | reference for OCP | | |
419 | | | radio head | | |
420 +------------+------------+----------------------+----------------------+------------+
421 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
422 +------------+------------+----------------------+----------------------+------------+
423 | name | String | Object parameter | dataLink | Yes |
425 +------------+------------+----------------------+----------------------+------------+
426 | value | String | Object parameter | dataLink:1 | Yes |
428 +------------+------------+----------------------+----------------------+------------+
437 "nodeId": "ocp:MTI-101-200",
438 "objId": "RxSigPath_5G:1",
442 "value": "dataLink:1"
452 +--------------------+--------------------+--------------------------------------+
453 | Field Name | Type | Description |
454 +====================+====================+======================================+
455 | objId | String | Object ID |
456 +--------------------+--------------------+--------------------------------------+
457 | globResult | String, enumerated | Common default result codes + |
458 | | | "FAIL\_UNKNOWN\_OBJECT", |
459 | | | "FAIL\_PARAMETER\_FAIL", |
460 | | | "FAIL\_NOSUCH\_RESOURCE" |
461 +--------------------+--------------------+--------------------------------------+
462 | name | String | Object parameter name |
463 +--------------------+--------------------+--------------------------------------+
464 | result | String, enumerated | "SUCCESS", "FAIL\_UNKNOWN\_PARAM", |
465 | | | "FAIL\_PARAM\_READONLY", |
466 | | | "FAIL\_PARAM\_LOCKREQUIRED", |
467 | | | "FAIL\_VALUE\_OUTOF\_RANGE", |
468 | | | "FAIL\_VALUE\_TYPE\_ERROR" |
469 +--------------------+--------------------+--------------------------------------+
477 "objId": "RxSigPath_5G:1",
478 "globResult": "SUCCESS",
491 The Object Creation procedure allows the application to create and
492 initialize a new instance of the given object type on the RE.
495 http://localhost:8181/restconf/operations/ocp-service:create-obj-nb
500 +------------+------------+----------------------+----------------------+------------+
501 | Field Name | Type | Description | Example | Required? |
502 +============+============+======================+======================+============+
503 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
504 | | | reference for OCP | | |
505 | | | radio head | | |
506 +------------+------------+----------------------+----------------------+------------+
507 | objType | String | Object type | RxSigPath\_5G | Yes |
508 +------------+------------+----------------------+----------------------+------------+
509 | name | String | Object parameter | dataLink | No |
511 +------------+------------+----------------------+----------------------+------------+
512 | value | String | Object parameter | dataLink:1 | No |
514 +------------+------------+----------------------+----------------------+------------+
523 "nodeId": "ocp:MTI-101-200",
524 "objType": "RxSigPath_5G",
528 "value": "dataLink:1"
538 +--------------------+--------------------+--------------------------------------+
539 | Field Name | Type | Description |
540 +====================+====================+======================================+
541 | objId | String | Object ID |
542 +--------------------+--------------------+--------------------------------------+
543 | globResult | String, enumerated | Common default result codes + |
544 | | | "FAIL\_UNKNOWN\_OBJTYPE", |
545 | | | "FAIL\_STATIC\_OBJTYPE", |
546 | | | "FAIL\_UNKNOWN\_OBJECT", |
547 | | | "FAIL\_CHILD\_NOTALLOWED", |
548 | | | "FAIL\_OUTOF\_RESOURCES" |
549 | | | "FAIL\_PARAMETER\_FAIL", |
550 | | | "FAIL\_NOSUCH\_RESOURCE" |
551 +--------------------+--------------------+--------------------------------------+
552 | name | String | Object parameter name |
553 +--------------------+--------------------+--------------------------------------+
554 | result | String, enumerated | "SUCCESS", "FAIL\_UNKNOWN\_PARAM", |
555 | | | "FAIL\_PARAM\_READONLY", |
556 | | | "FAIL\_PARAM\_LOCKREQUIRED", |
557 | | | "FAIL\_VALUE\_OUTOF\_RANGE", |
558 | | | "FAIL\_VALUE\_TYPE\_ERROR" |
559 +--------------------+--------------------+--------------------------------------+
567 "objId": "RxSigPath_5G:0",
568 "globResult": "SUCCESS",
581 The Object Deletion procedure allows the application to delete a given
582 object instance and recursively its entire child objects on the RE.
585 http://localhost:8181/restconf/operations/ocp-service:delete-obj-nb
590 +------------+------------+----------------------+----------------------+------------+
591 | Field Name | Type | Description | Example | Required? |
592 +============+============+======================+======================+============+
593 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
594 | | | reference for OCP | | |
595 | | | radio head | | |
596 +------------+------------+----------------------+----------------------+------------+
597 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
598 +------------+------------+----------------------+----------------------+------------+
607 "nodeId": "ocp:MTI-101-200",
608 "obj-id": "RxSigPath_5G:0"
616 +--------------------+--------------------+--------------------------------------+
617 | Field Name | Type | Description |
618 +====================+====================+======================================+
619 | result | String, enumerated | Common default result codes + |
620 | | | "FAIL\_UNKNOWN\_OBJECT", |
621 | | | "FAIL\_STATIC\_OBJTYPE", |
622 | | | "FAIL\_LOCKREQUIRED" |
623 +--------------------+--------------------+--------------------------------------+
638 The Object State Reporting procedure allows the application to acquire
639 the current state (for the requested state type) of one or more objects
640 of the RE resource model, and additionally configure event-triggered
641 reporting of the detected state changes for all state types of the
645 http://localhost:8181/restconf/operations/ocp-service:get-state-nb
650 +--------------------+----------+--------------------+--------------------+----------+
651 | Field Name | Type | Description | Example | Required |
653 +====================+==========+====================+====================+==========+
654 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
655 | | | reference for OCP | | |
656 | | | radio head | | |
657 +--------------------+----------+--------------------+--------------------+----------+
658 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
659 +--------------------+----------+--------------------+--------------------+----------+
660 | stateType | String, | Valid values: | ALL | Yes |
661 | | enumerat | "AST", "FST", | | |
663 +--------------------+----------+--------------------+--------------------+----------+
664 | eventDrivenReporti | Boolean | Event-triggered | true | Yes |
665 | ng | | reporting of state | | |
667 +--------------------+----------+--------------------+--------------------+----------+
676 "nodeId": "ocp:MTI-101-200",
677 "objId": "antPort:0",
679 "eventDrivenReporting": "true"
687 +--------------------+--------------------+--------------------------------------+
688 | Field Name | Type | Description |
689 +====================+====================+======================================+
690 | id | String | Object ID |
691 +--------------------+--------------------+--------------------------------------+
692 | type | String, enumerated | State type. Valid values: "AST", |
694 +--------------------+--------------------+--------------------------------------+
695 | value | String, enumerated | State value. Valid values: For state |
696 | | | type = "AST": "LOCKED", "UNLOCKED". |
697 | | | For state type = "FST": |
698 | | | "PRE\_OPERATIONAL", "OPERATIONAL", |
699 | | | "DEGRADED", "FAILED", |
700 | | | "NOT\_OPERATIONAL", "DISABLED" |
701 +--------------------+--------------------+--------------------------------------+
702 | result | String, enumerated | Common default result codes + |
703 | | | "FAIL\_UNKNOWN\_OBJECT", |
704 | | | "FAIL\_UNKNOWN\_STATETYPE", |
705 | | | "FAIL\_VALUE\_OUTOF\_RANGE" |
706 +--------------------+--------------------+--------------------------------------+
736 The Object State Modification procedure allows the application to
737 trigger a change in the state of an object of the RE Resource Model.
740 http://localhost:8181/restconf/operations/ocp-service:modify-state-nb
745 +------------+------------+----------------------+----------------------+------------+
746 | Field Name | Type | Description | Example | Required? |
747 +============+============+======================+======================+============+
748 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
749 | | | reference for OCP | | |
750 | | | radio head | | |
751 +------------+------------+----------------------+----------------------+------------+
752 | objId | String | Object ID | RxSigPath\_5G:1 | Yes |
753 +------------+------------+----------------------+----------------------+------------+
754 | stateType | String, | Valid values: "AST", | AST | Yes |
755 | | enumerated | "FST", "ALL" | | |
756 +------------+------------+----------------------+----------------------+------------+
757 | stateValue | String, | Valid values: For | LOCKED | Yes |
758 | | enumerated | state type = "AST": | | |
759 | | | "LOCKED", | | |
760 | | | "UNLOCKED". For | | |
761 | | | state type = "FST": | | |
762 | | | "PRE\_OPERATIONAL", | | |
763 | | | "OPERATIONAL", | | |
764 | | | "DEGRADED", | | |
765 | | | "FAILED", | | |
766 | | | "NOT\_OPERATIONAL", | | |
767 | | | "DISABLED" | | |
768 +------------+------------+----------------------+----------------------+------------+
777 "nodeId": "ocp:MTI-101-200",
778 "objId": "RxSigPath_5G:1",
780 "stateValue": "LOCKED"
788 +--------------------+--------------------+--------------------------------------+
789 | Field Name | Type | Description |
790 +====================+====================+======================================+
791 | objId | String | Object ID |
792 +--------------------+--------------------+--------------------------------------+
793 | stateType | String, enumerated | State type. Valid values: "AST", |
795 +--------------------+--------------------+--------------------------------------+
796 | stateValue | String, enumerated | State value. Valid values: For state |
797 | | | type = "AST": "LOCKED", "UNLOCKED". |
798 | | | For state type = "FST": |
799 | | | "PRE\_OPERATIONAL", "OPERATIONAL", |
800 | | | "DEGRADED", "FAILED", |
801 | | | "NOT\_OPERATIONAL", "DISABLED" |
802 +--------------------+--------------------+--------------------------------------+
803 | result | String, enumerated | Common default result codes + |
804 | | | "FAIL\_UNKNOWN\_OBJECT", |
805 | | | "FAIL\_UNKNOWN\_STATETYPE", |
806 | | | "FAIL\_UNKNOWN\_STATEVALUE", |
807 | | | "FAIL\_STATE\_READONLY", |
808 | | | "FAIL\_RESOURCE\_UNAVAILABLE", |
809 | | | "FAIL\_RESOURCE\_INUSE", |
810 | | | "FAIL\_PARENT\_CHILD\_CONFLICT", |
811 | | | "FAIL\_PRECONDITION\_NOTMET |
812 +--------------------+--------------------+--------------------------------------+
820 "objId": "RxSigPath_5G:1",
822 "stateValue": "LOCKED",
830 The Fault Reporting procedure allows the application to acquire
831 information about all current active faults associated with a primary
832 object, as well as configure the RE to report when the fault status
833 changes for any of faults associated with the indicated primary object.
836 http://localhost:8181/restconf/operations/ocp-service:get-fault-nb
841 +------------+------------+----------------------+----------------------+------------+
842 | Field Name | Type | Description | Example | Required? |
843 +============+============+======================+======================+============+
844 | nodeId | String | Inventory node | ocp:MTI-101-200 | Yes |
845 | | | reference for OCP | | |
846 | | | radio head | | |
847 +------------+------------+----------------------+----------------------+------------+
848 | objId | String | Object ID | RE:0 | Yes |
849 +------------+------------+----------------------+----------------------+------------+
850 | eventDrive | Boolean | Event-triggered | true | Yes |
851 | nReporting | | reporting of fault | | |
852 +------------+------------+----------------------+----------------------+------------+
861 "nodeId": "ocp:MTI-101-200",
863 "eventDrivenReporting": "true"
871 +--------------------+--------------------+--------------------------------------+
872 | Field Name | Type | Description |
873 +====================+====================+======================================+
874 | result | String, enumerated | Common default result codes + |
875 | | | "FAIL\_UNKNOWN\_OBJECT", |
876 | | | "FAIL\_VALUE\_OUTOF\_RANGE" |
877 +--------------------+--------------------+--------------------------------------+
878 | id (obj) | String | Object ID |
879 +--------------------+--------------------+--------------------------------------+
880 | id (fault) | String | Fault ID |
881 +--------------------+--------------------+--------------------------------------+
882 | severity | String | Fault severity |
883 +--------------------+--------------------+--------------------------------------+
884 | timestamp | dateTime | Time stamp |
885 +--------------------+--------------------+--------------------------------------+
886 | descr | String | Text description |
887 +--------------------+--------------------+--------------------------------------+
888 | affectedObj | String | Affected object |
889 +--------------------+--------------------+--------------------------------------+
903 "id": "FAULT_OVERTEMP",
904 "severity": "DEGRADED",
905 "timestamp": "2012-02-12T16:35:00",
906 "descr": "PA temp too high; Pout reduced",
913 "id": "FAULT_VSWR_OUTOF_RANGE",
914 "severity": "WARNING",
915 "timestamp": "2012-02-12T16:01:05",
925 The northbound APIs described above wrap the southbound APIs to make
926 them accessible to external applications via RESTCONF, as well as
927 take care of synchronizing the RE resource model between radio heads
928 and the controller’s datastore. See
929 applications/ocp-service/src/main/yang/ocp-resourcemodel.yang for
930 the yang representation of the RE resource model.
932 Java Interfaces (Southbound APIs)
933 ---------------------------------
935 The southbound APIs provide concrete implementation of the following OCP
936 elementary functions: health-check, set-time, re-reset, get-param,
937 modify-param, create-obj, delete-obj, get-state, modify-state and
938 get-fault. Any OpenDaylight services/applications (of course, including
939 OCP service) wanting to speak OCP to radio heads will need to use them.
944 Interface SalDeviceMgmtService defines three methods corresponding to
945 health-check, set-time and re-reset.
947 **SalDeviceMgmtService.java.**
951 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.device.mgmt.rev150811;
953 public interface SalDeviceMgmtService
958 Future<RpcResult<HealthCheckOutput>> healthCheck(HealthCheckInput input);
960 Future<RpcResult<SetTimeOutput>> setTime(SetTimeInput input);
962 Future<RpcResult<ReResetOutput>> reReset(ReResetInput input);
969 Interface SalConfigMgmtService defines two methods corresponding to
970 get-param and modify-param.
972 **SalConfigMgmtService.java.**
976 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.config.mgmt.rev150811;
978 public interface SalConfigMgmtService
983 Future<RpcResult<GetParamOutput>> getParam(GetParamInput input);
985 Future<RpcResult<ModifyParamOutput>> modifyParam(ModifyParamInput input);
989 SalObjectLifecycleService
990 ~~~~~~~~~~~~~~~~~~~~~~~~~
992 Interface SalObjectLifecycleService defines two methods corresponding to
993 create-obj and delete-obj.
995 **SalObjectLifecycleService.java.**
999 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.lifecycle.rev150811;
1001 public interface SalObjectLifecycleService
1006 Future<RpcResult<CreateObjOutput>> createObj(CreateObjInput input);
1008 Future<RpcResult<DeleteObjOutput>> deleteObj(DeleteObjInput input);
1012 SalObjectStateMgmtService
1013 ~~~~~~~~~~~~~~~~~~~~~~~~~
1015 Interface SalObjectStateMgmtService defines two methods corresponding to
1016 get-state and modify-state.
1018 **SalObjectStateMgmtService.java.**
1022 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.state.mgmt.rev150811;
1024 public interface SalObjectStateMgmtService
1029 Future<RpcResult<GetStateOutput>> getState(GetStateInput input);
1031 Future<RpcResult<ModifyStateOutput>> modifyState(ModifyStateInput input);
1038 Interface SalFaultMgmtService defines only one method corresponding to
1041 **SalFaultMgmtService.java.**
1045 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.fault.mgmt.rev150811;
1047 public interface SalFaultMgmtService
1052 Future<RpcResult<GetFaultOutput>> getFault(GetFaultInput input);
1059 In addition to indication messages, the OCP southbound plugin will
1060 translate specific events (e.g., connect, disconnect) coming up from the
1061 OCP protocol library into MD-SAL Notification objects and then publish
1062 them to the MD-SAL. Also, the OCP service will notify the completion of
1063 certain operation via Notification as well.
1065 SalDeviceMgmtListener
1066 ~~~~~~~~~~~~~~~~~~~~~
1068 An onDeviceConnected Notification will be published to the MD-SAL as
1069 soon as a radio head is connected to the controller, and when that radio
1070 head is disconnected the OCP southbound plugin will publish an
1071 onDeviceDisconnected Notification in response to the disconnect event
1072 propagated from the OCP protocol library.
1074 **SalDeviceMgmtListener.java.**
1078 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.device.mgmt.rev150811;
1080 public interface SalDeviceMgmtListener
1082 NotificationListener
1085 void onDeviceConnected(DeviceConnected notification);
1087 void onDeviceDisconnected(DeviceDisconnected notification);
1094 The OCP service will publish an onAlignmentCompleted Notification to the
1095 MD-SAL once it has completed the OCP alignment procedure with the radio
1098 **OcpServiceListener.java.**
1102 package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ocp.applications.ocp.service.rev150811;
1104 public interface OcpServiceListener
1106 NotificationListener
1109 void onAlignmentCompleted(AlignmentCompleted notification);
1113 SalObjectStateMgmtListener
1114 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1116 When receiving a state change indication message, the OCP southbound
1117 plugin will propagate the indication message to upper layer
1118 services/applications by publishing a corresponding onStateChangeInd
1119 Notification to the MD-SAL.
1121 **SalObjectStateMgmtListener.java.**
1125 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.object.state.mgmt.rev150811;
1127 public interface SalObjectStateMgmtListener
1129 NotificationListener
1132 void onStateChangeInd(StateChangeInd notification);
1136 SalFaultMgmtListener
1137 ~~~~~~~~~~~~~~~~~~~~
1139 When receiving a fault indication message, the OCP southbound plugin
1140 will propagate the indication message to upper layer
1141 services/applications by publishing a corresponding onFaultInd
1142 Notification to the MD-SAL.
1144 **SalFaultMgmtListener.java.**
1148 package org.opendaylight.yang.gen.v1.urn.opendaylight.ocp.fault.mgmt.rev150811;
1150 public interface SalFaultMgmtListener
1152 NotificationListener
1155 void onFaultInd(FaultInd notification);