Lines Matching refs:sa

77 	osm_sa_t *sa;
89 static boolean_t validate_ports_access_rights(IN osm_sa_t * sa,
98 OSM_LOG_ENTER(sa->p_log);
101 p_requester_physp = osm_get_physp_by_mad_addr(sa->p_log, sa->p_subn,
110 p_port = osm_get_port_by_guid(sa->p_subn, portguid);
112 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4301: "
122 (sa->p_log, p_port->p_physp, p_requester_physp,
123 sa->p_subn->opt.allow_both_pkeys)) {
124 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
144 lids_size = cl_ptr_vector_get_size(&sa->p_subn->port_lid_tbl);
155 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4302: "
165 p_port = osm_get_port_by_lid_ho(sa->p_subn, lid);
172 (sa->p_log, p_port->p_physp, p_requester_physp,
173 sa->p_subn->opt.allow_both_pkeys)) {
174 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
183 OSM_LOG_EXIT(sa->p_log);
187 static boolean_t validate_infr(IN osm_sa_t * sa, IN osm_infr_t * p_infr_rec)
191 OSM_LOG_ENTER(sa->p_log);
193 valid = validate_ports_access_rights(sa, p_infr_rec);
195 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
200 OSM_LOG_EXIT(sa->p_log);
209 static void infr_rcv_respond(IN osm_sa_t * sa, IN osm_madw_t * p_madw)
214 OSM_LOG_ENTER(sa->p_log);
216 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
221 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4303: "
233 osm_sa_respond(sa, p_madw, sizeof(ib_inform_info_t), &rec_list);
236 OSM_LOG_EXIT(sa->p_log);
239 static void sa_inform_info_rec_by_comp_mask(IN osm_sa_t * sa,
250 OSM_LOG_ENTER(sa->p_log);
269 p_subscriber_port = osm_get_port_by_guid(sa->p_subn, portguid);
271 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 430D: "
281 if (!osm_physp_share_pkey(sa->p_log, p_req_physp, p_subscriber_physp,
282 sa->p_subn->opt.allow_both_pkeys)) {
283 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
290 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 430E: "
310 OSM_LOG_EXIT(sa->p_log);
319 sa_inform_info_rec_by_comp_mask(p_ctxt->sa, p_infr, p_ctxt);
325 static void infr_rcv_process_get_method(osm_sa_t * sa, IN osm_madw_t * p_madw)
335 OSM_LOG_ENTER(sa->p_log);
342 cl_plock_acquire(sa->p_lock);
345 p_req_physp = osm_get_physp_by_mad_addr(sa->p_log, sa->p_subn,
349 cl_plock_release(sa->p_lock);
350 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4309: "
355 if (OSM_LOG_IS_ACTIVE_V2(sa->p_log, OSM_LOG_DEBUG)) {
356 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
359 osm_dump_inform_info_record_v2(sa->p_log, p_rcvd_rec,
370 context.sa = sa;
374 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
382 cl_qlist_apply_func(&sa->p_subn->sa_infr_list,
393 cl_plock_release(sa->p_lock);
395 osm_sa_respond(sa, p_madw, sizeof(ib_inform_info_record_t), &rec_list);
398 OSM_LOG_EXIT(sa->p_log);
404 static void infr_rcv_process_set_method(osm_sa_t * sa, IN osm_madw_t * p_madw)
414 OSM_LOG_ENTER(sa->p_log);
423 if (OSM_LOG_IS_ACTIVE_V2(sa->p_log, OSM_LOG_DEBUG))
424 osm_dump_inform_info_v2(sa->p_log, p_recvd_inform_info,
429 cl_plock_excl_acquire(sa->p_lock);
439 inform_info_rec.sa = sa;
442 res = osm_get_gid_by_mad_addr(sa->p_log, sa->p_subn, &p_madw->mad_addr,
446 cl_plock_release(sa->p_lock);
448 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4308: "
451 osm_sa_send_error(sa, p_madw, IB_SA_MAD_STATUS_REQ_INVALID);
460 cl_plock_release(sa->p_lock);
462 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 430A: "
465 osm_sa_send_error(sa, p_madw, IB_SA_MAD_STATUS_REQ_INVALID);
477 cl_plock_release(sa->p_lock);
479 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 430B "
483 osm_sa_send_error(sa, p_madw, IB_SA_MAD_STATUS_REQ_INVALID);
500 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
509 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
515 p_infr = osm_infr_get_by_rec(sa->p_subn, sa->p_log, &inform_info_rec);
520 if (validate_infr(sa, &inform_info_rec) != TRUE) {
521 cl_plock_release(sa->p_lock);
523 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4305: "
528 osm_sa_send_error(sa, p_madw,
538 cl_plock_release(sa->p_lock);
540 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4306: "
545 osm_sa_send_error(sa, p_madw,
550 OSM_LOG(sa->p_log, OSM_LOG_VERBOSE,
555 osm_infr_insert_to_db(sa->p_subn, sa->p_log, p_infr);
561 cl_plock_release(sa->p_lock);
564 OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4307: "
569 osm_sa_send_error(sa, p_madw, IB_SA_MAD_STATUS_REQ_INVALID);
573 OSM_LOG(sa->p_log, OSM_LOG_VERBOSE,
576 osm_infr_remove_from_db(sa->p_subn, sa->p_log, p_infr);
579 cl_plock_release(sa->p_lock);
582 infr_rcv_respond(sa, p_madw);
585 OSM_LOG_EXIT(sa->p_log);
590 osm_sa_t *sa = context;
594 OSM_LOG_ENTER(sa->p_log);
603 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
606 osm_sa_send_error(sa, p_madw, IB_MAD_STATUS_UNSUP_METHOD_ATTR);
610 infr_rcv_process_set_method(sa, p_madw);
613 OSM_LOG_EXIT(sa->p_log);
618 osm_sa_t *sa = context;
622 OSM_LOG_ENTER(sa->p_log);
632 OSM_LOG(sa->p_log, OSM_LOG_DEBUG,
635 osm_sa_send_error(sa, p_madw, IB_MAD_STATUS_UNSUP_METHOD_ATTR);
639 infr_rcv_process_get_method(sa, p_madw);
642 OSM_LOG_EXIT(sa->p_log);