girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 1 | # |
| 2 | # Copyright 2017 the original author or authors. |
| 3 | # |
| 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | # you may not use this file except in compliance with the License. |
| 6 | # You may obtain a copy of the License at |
| 7 | # |
| 8 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | # |
| 10 | # Unless required by applicable law or agreed to in writing, software |
| 11 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | # See the License for the specific language governing permissions and |
| 14 | # limitations under the License. |
| 15 | # |
| 16 | |
| 17 | """ |
| 18 | Asfvolt16 OLT adapter |
| 19 | """ |
| 20 | from twisted.internet import reactor |
| 21 | from common.utils.grpc_utils import twisted_async |
| 22 | from voltha.adapters.asfvolt16_olt.protos import bal_indications_pb2 |
| 23 | from voltha.adapters.asfvolt16_olt.protos import bal_model_types_pb2, \ |
| 24 | bal_errno_pb2, bal_pb2, bal_model_ids_pb2 |
| 25 | from voltha.adapters.asfvolt16_olt.grpc_server import GrpcServer |
| 26 | |
| 27 | |
| 28 | class Asfvolt16IndHandler(object): |
| 29 | def __init__(self, log): |
| 30 | self.log = log |
| 31 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 32 | def bal_acc_term_oper_sta_cng(self, indication, device_handler): |
| 33 | self.log.info("access-term-oper-status-change", indication=indication) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 34 | ind_info = dict() |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 35 | ind_info['_object_type'] = 'access_term_ind' |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 36 | ind_info['_sub_group_type'] = 'oper_state_change' |
ggowdru | 64d738a | 2018-05-10 07:08:06 -0700 | [diff] [blame] | 37 | ind_info['activation_successful'] = False |
| 38 | ind_info['deactivation_successful'] = False |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 39 | if indication.access_term_ind_op_state.data.admin_state is \ |
| 40 | bal_model_types_pb2.BAL_STATE_UP and \ |
| 41 | indication.access_term_ind_op_state.data.new_oper_status is \ |
| 42 | bal_model_types_pb2.BAL_STATUS_UP: |
| 43 | ind_info['activation_successful'] = True |
| 44 | elif indication.access_term_ind_op_state.data.admin_state is \ |
| 45 | bal_model_types_pb2.BAL_STATE_DOWN and \ |
| 46 | indication.access_term_ind_op_state.data.new_oper_status is \ |
| 47 | bal_model_types_pb2.BAL_STATUS_DOWN: |
| 48 | ind_info['deactivation_successful'] = True |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 49 | |
| 50 | reactor.callLater(0, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 51 | device_handler.handle_access_term_oper_status_change, |
| 52 | ind_info) |
| 53 | bal_err = bal_pb2.BalErr() |
| 54 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 55 | return bal_err |
| 56 | |
| 57 | def bal_acc_term_processing_error(self, indication, device_handler): |
| 58 | # TODO: No error handling currently. |
| 59 | self.log.error("access-term-processing-error", indication=indication) |
| 60 | # return a dummy response |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 61 | bal_err = bal_pb2.BalErr() |
| 62 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 63 | return bal_err |
| 64 | |
| 65 | def bal_flow_oper_sts_cng(self, indication, device_handler): |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 66 | self.log.debug("flow-oper-status-change", indication=indication) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 67 | ind_info = dict() |
| 68 | ind_info['_object_type'] = 'flow_indication' |
| 69 | ind_info['_sub_group_type'] = 'oper_state_change' |
| 70 | ind_info['_object_type'] = indication.objType |
| 71 | ind_info['_sub_group_type'] = indication.sub_group |
| 72 | bal_err = bal_pb2.BalErr() |
| 73 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 74 | return bal_err |
| 75 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 76 | def bal_flow_processing_error(self, indication, device_handler): |
| 77 | # TODO: No error handling. |
| 78 | self.log.debug("flow-processing-error", indication=indication) |
| 79 | # dummy response |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 80 | bal_err = bal_pb2.BalErr() |
| 81 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 82 | return bal_err |
| 83 | |
| 84 | def bal_iface_oper_sts_cng(self, indication, device_handler): |
| 85 | ind_info = dict() |
| 86 | ind_info['_object_type'] = 'interface_indication' |
| 87 | ind_info['_sub_group_type'] = 'oper_state_change' |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 88 | ind_info['activation_successful'] = False |
| 89 | if indication.interface_op_state.data.new_oper_status is \ |
| 90 | bal_model_types_pb2.BAL_STATUS_UP and \ |
| 91 | indication.interface_op_state.data.admin_state is \ |
| 92 | bal_model_types_pb2.BAL_STATUS_UP: |
| 93 | ind_info['activation_successful'] = True |
| 94 | self.log.info("Awaiting-ONU-discovery") |
| 95 | |
| 96 | reactor.callLater(0, |
| 97 | device_handler.BalIfaceOperStatusChange, |
| 98 | indication.interface_op_state.key.intf_id, |
| 99 | ind_info) |
| 100 | |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 101 | bal_err = bal_pb2.BalErr() |
| 102 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 103 | return bal_err |
| 104 | |
| 105 | def bal_iface_los(self, indication, device_handler): |
| 106 | los_status = indication.interface_los.data.status |
| 107 | if los_status != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 108 | balIfaceLos_dict = dict() |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 109 | balIfaceLos_dict["los_status"] = los_status.__str__() |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 110 | reactor.callLater(0, |
| 111 | device_handler.BalIfaceLosAlarm, |
| 112 | indication.device_id, |
| 113 | indication, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 114 | los_status, balIfaceLos_dict) |
| 115 | bal_err = bal_pb2.BalErr() |
| 116 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 117 | return bal_err |
| 118 | |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 119 | def bal_subs_term_oper_sts_cng(self, indication, device_handler): |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 120 | onu_data = indication.terminal_op_state |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 121 | ind_info = dict() |
| 122 | ind_info['_object_type'] = 'sub_term_indication' |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 123 | ind_info['_sub_group_type'] = 'sub_term_op_state' |
| 124 | ind_info['_pon_id'] = onu_data.key.intf_id |
| 125 | ind_info['onu_id'] = onu_data.key.sub_term_id |
| 126 | ind_info['activation_successful'] = False |
| 127 | if onu_data.data.admin_state is bal_model_types_pb2.BAL_STATE_DOWN or \ |
| 128 | onu_data.data.new_oper_status is bal_model_types_pb2.BAL_STATUS_DOWN: |
| 129 | ind_info['activation_successful'] = False |
| 130 | elif onu_data.data.admin_state is bal_model_types_pb2.BAL_STATE_UP and \ |
| 131 | onu_data.data.new_oper_status is bal_model_types_pb2.BAL_STATUS_UP: |
| 132 | ind_info['activation_successful'] = True |
| 133 | |
| 134 | reactor.callLater(0, |
| 135 | device_handler.handle_sub_term_oper_status_change, |
| 136 | ind_info) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 137 | bal_err = bal_pb2.BalErr() |
| 138 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 139 | return bal_err |
| 140 | |
| 141 | def bal_subs_term_discovery_ind(self, indication, device_handler): |
| 142 | # ind_info: {'object_type': <int> |
| 143 | # '_sub_group_type': <str> |
| 144 | # '_device_id': <str> |
| 145 | # '_pon_id' : <int> |
| 146 | # 'onu_id' : <int> |
| 147 | # '_vendor_id' : <str> |
| 148 | # '__vendor_specific' : <str> |
| 149 | # 'activation_successful':[True or False]} |
| 150 | onu_data = indication.terminal_disc |
| 151 | ind_info = dict() |
| 152 | ind_info['_object_type'] = 'sub_term_indication' |
| 153 | ind_info['_sub_group_type'] = 'onu_discovery' |
| 154 | ind_info['_pon_id'] = onu_data.key.intf_id |
| 155 | ind_info['onu_id'] = onu_data.key.sub_term_id |
| 156 | ind_info['_vendor_id'] = onu_data.data.serial_number.vendor_id |
| 157 | ind_info['_vendor_specific'] = \ |
| 158 | onu_data.data.serial_number.vendor_specific |
| 159 | reactor.callLater(0, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 160 | device_handler.handle_sub_term_discovery, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 161 | ind_info) |
| 162 | bal_err = bal_pb2.BalErr() |
| 163 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 164 | return bal_err |
| 165 | |
| 166 | def bal_subs_term_alarm_ind(self, indication, device_handler): |
| 167 | # Loss of signal |
| 168 | los = indication.terminal_alarm.data.alarm.los |
| 169 | # Loss of busrt |
| 170 | lob = indication.terminal_alarm.data.alarm.lob |
| 171 | # Loss of PLOAM miss channel |
| 172 | lopc_miss = indication.terminal_alarm.data.alarm.lopc_miss |
| 173 | # Loss of PLOAM channel |
| 174 | lopc_mic_error = indication.terminal_alarm.data.alarm.lopc_mic_error |
| 175 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 176 | balSubTermAlarm_Dict = dict() |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 177 | balSubTermAlarm_Dict["LOS Status"] = los.__str__() |
| 178 | balSubTermAlarm_Dict["LOB Status"] = lob.__str__() |
| 179 | balSubTermAlarm_Dict["LOPC MISS Status"] = lopc_miss.__str__() |
| 180 | balSubTermAlarm_Dict["LOPC MIC ERROR Status"] = lopc_mic_error.__str__() |
| 181 | |
| 182 | if los != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 183 | reactor.callLater(0, device_handler.BalSubsTermLosAlarm, |
| 184 | indication.device_id, |
| 185 | indication.terminal_alarm.key.intf_id, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 186 | los, balSubTermAlarm_Dict) |
| 187 | |
| 188 | if lob != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 189 | reactor.callLater(0, device_handler.BalSubsTermLobAlarm, |
| 190 | indication.device_id, |
| 191 | indication.terminal_alarm.key.intf_id, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 192 | lob, balSubTermAlarm_Dict) |
| 193 | |
| 194 | if lopc_miss != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 195 | reactor.callLater(0, device_handler.BalSubsTermLopcMissAlarm, |
| 196 | indication.device_id, |
| 197 | indication.terminal_alarm.key.intf_id, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 198 | lopc_miss, balSubTermAlarm_Dict) |
| 199 | |
| 200 | if lopc_mic_error != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 201 | reactor.callLater(0, device_handler.BalSubsTermLopcMicErrorAlarm, |
| 202 | indication.device_id, |
| 203 | indication.terminal_alarm.key.intf_id, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 204 | lopc_mic_error, balSubTermAlarm_Dict) |
| 205 | bal_err = bal_pb2.BalErr() |
| 206 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 207 | return bal_err |
| 208 | |
| 209 | def bal_subs_term_dgi_ind(self, indication, device_handler): |
| 210 | # ind_info: {'_object_type': <str> |
| 211 | # '_device_id': <str> |
| 212 | # '_pon_id' : <int> |
| 213 | # 'onu_id' : <int> |
| 214 | # '_vendor_id' : <str> |
| 215 | # '__vendor_specific' : <str> |
| 216 | # 'activation_successful':[True or False]} |
| 217 | dgi_status = indication.terminal_dgi.data.dgi_status |
| 218 | if dgi_status != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE: |
| 219 | ind_info = dict() |
| 220 | ind_info['_object_type'] = 'sub_term_indication' |
| 221 | ind_info['_sub_group_type'] = 'dgi_indication' |
| 222 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 223 | balSubTermDgi_Dict = dict() |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 224 | balSubTermDgi_Dict["dgi_status"] = dgi_status.__str__() |
| 225 | reactor.callLater(0, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 226 | device_handler.BalSubsTermDgiAlarm, |
| 227 | indication.device_id, |
| 228 | indication.terminal_dgi.key.intf_id, |
| 229 | indication.terminal_dgi.key.sub_term_id, |
| 230 | dgi_status, balSubTermDgi_Dict, ind_info) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 231 | bal_err = bal_pb2.BalErr() |
| 232 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 233 | return bal_err |
| 234 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 235 | def bal_subs_term_dowi_ind(self, indication, device_handler): |
| 236 | self.log.debug("sub-term-dowi-ind", indication=indication) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 237 | bal_err = bal_pb2.BalErr() |
| 238 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 239 | return bal_err |
| 240 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 241 | def bal_subs_term_looci_ind(self, indication, device_handler): |
| 242 | self.log.debug("sub-term-looci-ind", indication=indication) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 243 | bal_err = bal_pb2.BalErr() |
| 244 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 245 | return bal_err |
| 246 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 247 | def bal_subs_term_processing_error(self, indication, device_handler): |
| 248 | self.log.debug("sub-term-processing-error", indication=indication) |
| 249 | bal_err = bal_pb2.BalErr() |
| 250 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 251 | return bal_err |
| 252 | |
| 253 | def bal_subs_term_sdi_ind(self, indication, device_handler): |
| 254 | self.log.debug("sub-term-sdi-ind", indication=indication) |
| 255 | bal_err = bal_pb2.BalErr() |
| 256 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 257 | return bal_err |
| 258 | |
| 259 | def bal_subs_term_sfi_ind(self, indication, device_handler): |
| 260 | self.log.debug("sub-term-sfi-ind", indication=indication) |
| 261 | bal_err = bal_pb2.BalErr() |
| 262 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 263 | return bal_err |
| 264 | |
| 265 | def bal_subs_term_activation_fail(self, indication, device_handler): |
| 266 | self.log.debug("sub-term-activation-fail", indication=indication) |
| 267 | bal_err = bal_pb2.BalErr() |
| 268 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 269 | return bal_err |
| 270 | |
| 271 | def bal_subs_term_sufi_ind(self, indication, device_handler): |
| 272 | self.log.debug("sub-term-sufi-ind", indication=indication) |
| 273 | bal_err = bal_pb2.BalErr() |
| 274 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 275 | return bal_err |
| 276 | |
| 277 | def bal_subs_term_tiwi_ind(self, indication, device_handler): |
| 278 | self.log.debug("sub-term-tiwi-ind", indication=indication) |
| 279 | bal_err = bal_pb2.BalErr() |
| 280 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 281 | return bal_err |
| 282 | |
| 283 | def bal_tm_sched_oper_status_change(self, indication, device_handler): |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 284 | ind_info = dict() |
| 285 | ind_info['_object_type'] = 'tm_sched_indication' |
| 286 | ind_info['_sub_group_type'] = 'tm_sched_indication' |
| 287 | bal_err = bal_pb2.BalErr() |
| 288 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 289 | return bal_err |
| 290 | |
| 291 | def bal_pkt_bearer_channel_rx_ind(self, indication, device_handler): |
| 292 | ind_info = dict() |
| 293 | ind_info['flow_id'] = indication.pktData.data.flow_id |
| 294 | ind_info['flow_type'] = indication.pktData.data.flow_type |
| 295 | ind_info['intf_id'] = indication.pktData.data.intf_id |
| 296 | ind_info['intf_type'] = indication.pktData.data.intf_type |
| 297 | ind_info['svc_port'] = indication.pktData.data.svc_port |
| 298 | ind_info['flow_cookie'] = indication.pktData.data.flow_cookie |
| 299 | ind_info['packet'] = indication.pktData.data.pkt |
| 300 | reactor.callLater(0, |
| 301 | device_handler.handle_packet_in, |
| 302 | ind_info) |
| 303 | bal_err = bal_pb2.BalErr() |
| 304 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 305 | return bal_err |
| 306 | |
| 307 | def bal_pkt_omci_channel_rx_ind(self, indication, device_handler): |
| 308 | ind_info = dict() |
| 309 | ind_info['_object_type'] = 'packet_in_indication' |
| 310 | ind_info['_sub_group_type'] = 'omci_message' |
Girish Gowdru | 1f2f5d3 | 2018-06-14 00:38:33 -0700 | [diff] [blame] | 311 | ind_info['intf_id'] = \ |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 312 | indication.balOmciResp.key.packet_send_dest.itu_omci_channel.intf_id |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 313 | packet_data = indication.balOmciResp.key.packet_send_dest |
| 314 | ind_info['onu_id'] = packet_data.itu_omci_channel.sub_term_id |
| 315 | ind_info['packet'] = indication.balOmciResp.data.pkt |
sathishg | 42b72f4 | 2017-11-14 11:08:20 +0530 | [diff] [blame] | 316 | self.log.info('ONU-Id-is', |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 317 | onu_id=packet_data.itu_omci_channel.sub_term_id) |
| 318 | reactor.callLater(0, |
| 319 | device_handler.handle_omci_ind, |
| 320 | ind_info) |
| 321 | bal_err = bal_pb2.BalErr() |
| 322 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 323 | return bal_err |
| 324 | |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 325 | @staticmethod |
| 326 | def bal_pkt_ieee_oam_channel_rx_ind(indication, device_handler): |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 327 | ind_info = dict() |
| 328 | ind_info['_object_type'] = 'packet_in_indication' |
| 329 | ind_info['_sub_group_type'] = 'ieee_oam_message' |
| 330 | bal_err = bal_pb2.BalErr() |
| 331 | bal_err.err = bal_errno_pb2.BAL_ERR_OK |
| 332 | return bal_err |
| 333 | |
| 334 | def handle_indication_from_bal(self, bal_ind, device_handler): |
| 335 | indication_handler = self.indication_handler_map.get((bal_ind.objType, |
| 336 | bal_ind.sub_group), |
| 337 | None) |
| 338 | if indication_handler is None: |
| 339 | self.log.debug('No handler', objType=bal_ind.objType, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 340 | sub_group=bal_ind.sub_group) |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 341 | pass # no-op |
| 342 | else: |
| 343 | indication_handler(self, bal_ind, device_handler) |
| 344 | |
| 345 | indication_handler_map = { |
| 346 | (bal_model_ids_pb2.BAL_OBJ_ID_ACCESS_TERMINAL, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 347 | bal_model_ids_pb2.BAL_ACCESS_TERMINAL_AUTO_ID_OPER_STATUS_CHANGE): |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 348 | bal_acc_term_oper_sta_cng, |
| 349 | (bal_model_ids_pb2.BAL_OBJ_ID_ACCESS_TERMINAL, |
| 350 | bal_model_ids_pb2.BAL_ACCESS_TERMINAL_AUTO_ID_PROCESSING_ERROR): |
| 351 | bal_acc_term_processing_error, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 352 | |
| 353 | (bal_model_ids_pb2.BAL_OBJ_ID_FLOW, |
| 354 | bal_model_ids_pb2.BAL_FLOW_AUTO_ID_OPER_STATUS_CHANGE): |
| 355 | bal_flow_oper_sts_cng, |
| 356 | (bal_model_ids_pb2.BAL_OBJ_ID_FLOW, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 357 | bal_model_ids_pb2.BAL_FLOW_AUTO_ID_PROCESSING_ERROR): |
| 358 | bal_flow_processing_error, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 359 | |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 360 | (bal_model_ids_pb2.BAL_OBJ_ID_INTERFACE, |
| 361 | bal_model_ids_pb2.BAL_INTERFACE_AUTO_ID_LOS): |
| 362 | bal_iface_los, |
| 363 | (bal_model_ids_pb2.BAL_OBJ_ID_INTERFACE, |
Kyle Farnsworth | 1cc083a | 2017-11-10 10:32:29 -0600 | [diff] [blame] | 364 | bal_model_ids_pb2.BAL_INTERFACE_AUTO_ID_OPER_STATUS_CHANGE): |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 365 | bal_iface_oper_sts_cng, |
| 366 | |
| 367 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 368 | bal_model_ids_pb2. |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 369 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_OPER_STATUS_CHANGE): |
| 370 | bal_subs_term_oper_sts_cng, |
| 371 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 372 | bal_model_ids_pb2. |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 373 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SUB_TERM_DISC): |
| 374 | bal_subs_term_discovery_ind, |
| 375 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 376 | bal_model_ids_pb2. |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 377 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SUB_TERM_ALARM): |
| 378 | bal_subs_term_alarm_ind, |
| 379 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 380 | bal_model_ids_pb2. |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 381 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_DGI): |
| 382 | bal_subs_term_dgi_ind, |
| 383 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 384 | bal_model_ids_pb2. |
| 385 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_DOWI): |
| 386 | bal_subs_term_dowi_ind, |
| 387 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 388 | bal_model_ids_pb2. |
| 389 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_LOOCI): |
| 390 | bal_subs_term_looci_ind, |
| 391 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 392 | bal_model_ids_pb2. |
| 393 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_PROCESSING_ERROR): |
| 394 | bal_subs_term_processing_error, |
| 395 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 396 | bal_model_ids_pb2. |
| 397 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SDI): |
| 398 | bal_subs_term_sdi_ind, |
| 399 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 400 | bal_model_ids_pb2. |
| 401 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SFI): |
| 402 | bal_subs_term_sfi_ind, |
| 403 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 404 | bal_model_ids_pb2. |
| 405 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SUB_TERM_ACT_FAIL): |
| 406 | bal_subs_term_activation_fail, |
| 407 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 408 | bal_model_ids_pb2. |
| 409 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_SUFI): |
| 410 | bal_subs_term_sufi_ind, |
| 411 | (bal_model_ids_pb2.BAL_OBJ_ID_SUBSCRIBER_TERMINAL, |
| 412 | bal_model_ids_pb2. |
| 413 | BAL_SUBSCRIBER_TERMINAL_AUTO_ID_TIWI): |
| 414 | bal_subs_term_tiwi_ind, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 415 | |
| 416 | (bal_model_ids_pb2.BAL_OBJ_ID_TM_SCHED, |
Girish Gowdru | 4e854c2 | 2018-09-26 02:51:57 -0700 | [diff] [blame] | 417 | bal_model_ids_pb2.BAL_TM_SCHED_AUTO_ID_OPER_STATUS_CHANGE): |
| 418 | bal_tm_sched_oper_status_change, |
girish | 8882642 | 2017-10-25 13:55:40 +0530 | [diff] [blame] | 419 | |
| 420 | (bal_model_ids_pb2.BAL_OBJ_ID_PACKET, |
| 421 | bal_model_ids_pb2.BAL_PACKET_AUTO_ID_BEARER_CHANNEL_RX): |
| 422 | bal_pkt_bearer_channel_rx_ind, |
| 423 | (bal_model_ids_pb2.BAL_OBJ_ID_PACKET, |
| 424 | bal_model_ids_pb2.BAL_PACKET_AUTO_ID_ITU_OMCI_CHANNEL_RX): |
| 425 | bal_pkt_omci_channel_rx_ind, |
| 426 | (bal_model_ids_pb2.BAL_OBJ_ID_PACKET, |
| 427 | bal_model_ids_pb2.BAL_PACKET_AUTO_ID_IEEE_OAM_CHANNEL_RX): |
| 428 | bal_pkt_ieee_oam_channel_rx_ind, |
| 429 | } |