Lines Matching refs:event
67 static void i40iw_cm_post_event(struct i40iw_cm_event *event);
168 * @event: upper layer's cm event
171 struct iw_cm_event *event)
173 struct sockaddr_in *laddr = (struct sockaddr_in *)&event->local_addr;
174 struct sockaddr_in *raddr = (struct sockaddr_in *)&event->remote_addr;
189 * @event: upper layer's cm event
192 struct iw_cm_event *event)
194 struct sockaddr_in6 *laddr6 = (struct sockaddr_in6 *)&event->local_addr;
195 struct sockaddr_in6 *raddr6 = (struct sockaddr_in6 *)&event->remote_addr;
227 * i40iw_get_cmevent_info - for cm event upcall
229 * @cm_id: upper layers cm struct for the event
230 * @event: upper layer's cm event
234 struct iw_cm_event *event)
236 memcpy(&event->local_addr, &cm_id->m_local_addr,
237 sizeof(event->local_addr));
238 memcpy(&event->remote_addr, &cm_id->m_remote_addr,
239 sizeof(event->remote_addr));
241 event->private_data = (void *)cm_node->pdata_buf;
242 event->private_data_len = (u8)cm_node->pdata.size;
243 event->ird = cm_node->ird_size;
244 event->ord = cm_node->ord_size;
249 * i40iw_send_cm_event - upcall cm's event handler
253 * @status: status for the event type
260 struct iw_cm_event event;
262 memset(&event, 0, sizeof(event));
263 event.event = type;
264 event.status = status;
268 i40iw_fill_sockaddr4(cm_node, &event);
270 i40iw_fill_sockaddr6(cm_node, &event);
271 event.provider_data = (void *)cm_node;
272 event.private_data = (void *)cm_node->pdata_buf;
273 event.private_data_len = (u8)cm_node->pdata.size;
274 event.ird = cm_node->ird_size;
277 i40iw_get_cmevent_info(cm_node, cm_id, &event);
280 event.ird = cm_node->ird_size;
281 event.ord = cm_node->ord_size;
288 i40iw_pr_err("event type received type = %d\n", type);
291 return cm_id->event_handler(cm_id, &event);
295 * i40iw_create_event - create cm event
302 struct i40iw_cm_event *event;
307 event = kzalloc(sizeof(*event), GFP_ATOMIC);
309 if (!event)
312 event->type = type;
313 event->cm_node = cm_node;
314 memcpy(event->cm_info.rem_addr, cm_node->rem_addr, sizeof(event->cm_info.rem_addr));
315 memcpy(event->cm_info.loc_addr, cm_node->loc_addr, sizeof(event->cm_info.loc_addr));
316 event->cm_info.rem_port = cm_node->rem_port;
317 event->cm_info.loc_port = cm_node->loc_port;
318 event->cm_info.cm_id = cm_node->cm_id;
322 "node=%p event=%p type=%u dst=%pI4 src=%pI4\n",
324 event,
326 event->cm_info.loc_addr,
327 event->cm_info.rem_addr);
329 i40iw_cm_post_event(event);
330 return event;
558 * i40iw_active_open_err - send event for active side cm error
604 * i40iw_event_connect_error - to create connect error event
605 * @event: cm information for connect event
607 static void i40iw_event_connect_error(struct i40iw_cm_event *event)
612 cm_id = event->cm_node->cm_id;
623 i40iw_send_cm_event(event->cm_node, cm_id,
627 i40iw_rem_ref_cm_node(event->cm_node);
1890 struct i40iw_cm_event event;
1892 event.cm_node = loopback;
1893 memcpy(event.cm_info.rem_addr,
1894 loopback->rem_addr, sizeof(event.cm_info.rem_addr));
1895 memcpy(event.cm_info.loc_addr,
1896 loopback->loc_addr, sizeof(event.cm_info.loc_addr));
1897 event.cm_info.rem_port = loopback->rem_port;
1898 event.cm_info.loc_port = loopback->loc_port;
1899 event.cm_info.cm_id = loopback->cm_id;
1900 event.cm_info.ipv4 = loopback->ipv4;
1903 i40iw_event_connect_error(&event);
2509 * i40iw_indicate_pkt_err - Send up err event to cm
3581 ibevent.event = (qp->eventtype == TERM_EVENT_QP_FATAL) ?
3598 "disconnect event failed %s: - cm_id = %p\n",
3608 "close event failed %s: - cm_id = %p\n",
3762 i40iw_debug(dev, I40IW_DEBUG_CM, "error sending cm event - ESTABLISHED\n");
4076 * @event: the info for cm_node of connection
4078 static void i40iw_cm_event_connected(struct i40iw_cm_event *event)
4091 cm_node = event->cm_node;
4122 i40iw_debug(dev, I40IW_DEBUG_CM, "error sending cm event - CONNECT_REPLY\n");
4129 i40iw_send_cm_event(event->cm_node,
4134 i40iw_rem_ref_cm_node(event->cm_node);
4139 * @event: the info for cm_node of connection
4141 static void i40iw_cm_event_reset(struct i40iw_cm_event *event)
4143 struct i40iw_cm_node *cm_node = event->cm_node;
4156 "reset event %p - cm_id = %p\n",
4157 event->cm_node, cm_id);
4165 * i40iw_cm_event_handler - worker thread callback to send event to cm upper layer
4166 * @work: pointer of cm event info.
4170 struct i40iw_cm_event *event = container_of(work,
4175 if (!event || !event->cm_node || !event->cm_node->cm_core)
4178 cm_node = event->cm_node;
4180 switch (event->type) {
4188 i40iw_cm_event_reset(event);
4191 if (!event->cm_node->cm_id ||
4192 (event->cm_node->state != I40IW_CM_STATE_OFFLOADED))
4194 i40iw_cm_event_connected(event);
4197 if (!event->cm_node->cm_id ||
4206 if (!event->cm_node->cm_id ||
4207 (event->cm_node->state == I40IW_CM_STATE_OFFLOADED))
4209 i40iw_event_connect_error(event);
4212 i40iw_pr_err("event type = %d\n", event->type);
4216 event->cm_info.cm_id->rem_ref(event->cm_info.cm_id);
4217 i40iw_rem_ref_cm_node(event->cm_node);
4218 kfree(event);
4222 * i40iw_cm_post_event - queue event request for worker thread
4223 * @event: cm node's info for up event call
4225 static void i40iw_cm_post_event(struct i40iw_cm_event *event)
4227 atomic_inc(&event->cm_node->ref_count);
4228 event->cm_info.cm_id->add_ref(event->cm_info.cm_id);
4229 INIT_WORK(&event->event_work, i40iw_cm_event_handler);
4231 queue_work(event->cm_node->cm_core->event_wq, &event->event_work);