• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/tipc/

Lines Matching refs:p_ptr

69 static u32 port_peernode(struct port *p_ptr)
71 return msg_destnode(&p_ptr->publ.phdr);
74 static u32 port_peerport(struct port *p_ptr)
76 return msg_destport(&p_ptr->publ.phdr);
79 static u32 port_out_seqno(struct port *p_ptr)
81 return msg_transp_seqno(&p_ptr->publ.phdr);
84 static void port_incr_out_seqno(struct port *p_ptr)
86 struct tipc_msg *m = &p_ptr->publ.phdr;
224 struct port *p_ptr;
228 p_ptr = kzalloc(sizeof(*p_ptr), GFP_ATOMIC);
229 if (!p_ptr) {
233 ref = tipc_ref_acquire(p_ptr, &p_ptr->publ.lock);
236 kfree(p_ptr);
240 p_ptr->publ.usr_handle = usr_handle;
241 p_ptr->publ.max_pkt = MAX_PKT_DEFAULT;
242 p_ptr->publ.ref = ref;
243 msg = &p_ptr->publ.phdr;
246 p_ptr->last_in_seqno = 41;
247 p_ptr->sent = 1;
248 INIT_LIST_HEAD(&p_ptr->wait_list);
249 INIT_LIST_HEAD(&p_ptr->subscription.nodesub_list);
250 p_ptr->dispatcher = dispatcher;
251 p_ptr->wakeup = wakeup;
252 p_ptr->user_port = NULL;
253 k_init_timer(&p_ptr->timer, (Handler)port_timeout, ref);
255 INIT_LIST_HEAD(&p_ptr->publications);
256 INIT_LIST_HEAD(&p_ptr->port_list);
257 list_add_tail(&p_ptr->port_list, &ports);
259 return &(p_ptr->publ);
264 struct port *p_ptr;
268 p_ptr = tipc_port_lock(ref);
269 if (!p_ptr)
273 tipc_port_unlock(p_ptr);
275 k_cancel_timer(&p_ptr->timer);
276 if (p_ptr->publ.connected) {
277 buf = port_build_peer_abort_msg(p_ptr, TIPC_ERR_NO_PORT);
278 tipc_nodesub_unsubscribe(&p_ptr->subscription);
280 if (p_ptr->user_port) {
281 tipc_reg_remove_port(p_ptr->user_port);
282 kfree(p_ptr->user_port);
286 list_del(&p_ptr->port_list);
287 list_del(&p_ptr->wait_list);
289 k_term_timer(&p_ptr->timer);
290 kfree(p_ptr);
313 struct port *p_ptr;
316 p_ptr = tipc_port_lock(ref);
317 if (!p_ptr)
319 handle = p_ptr->publ.usr_handle;
320 tipc_port_unlock(p_ptr);
324 static int port_unreliable(struct port *p_ptr)
326 return msg_src_droppable(&p_ptr->publ.phdr);
331 struct port *p_ptr;
333 p_ptr = tipc_port_lock(ref);
334 if (!p_ptr)
336 *isunreliable = port_unreliable(p_ptr);
337 tipc_port_unlock(p_ptr);
343 struct port *p_ptr;
345 p_ptr = tipc_port_lock(ref);
346 if (!p_ptr)
348 msg_set_src_droppable(&p_ptr->publ.phdr, (isunreliable != 0));
349 tipc_port_unlock(p_ptr);
353 static int port_unreturnable(struct port *p_ptr)
355 return msg_dest_droppable(&p_ptr->publ.phdr);
360 struct port *p_ptr;
362 p_ptr = tipc_port_lock(ref);
363 if (!p_ptr)
365 *isunrejectable = port_unreturnable(p_ptr);
366 tipc_port_unlock(p_ptr);
372 struct port *p_ptr;
374 p_ptr = tipc_port_lock(ref);
375 if (!p_ptr)
377 msg_set_dest_droppable(&p_ptr->publ.phdr, (isunrejectable != 0));
378 tipc_port_unlock(p_ptr);
460 struct port *p_ptr = tipc_port_lock(msg_destport(msg));
462 if (p_ptr) {
463 if (p_ptr->publ.connected)
464 abuf = port_build_self_abort_msg(p_ptr, err);
465 tipc_port_unlock(p_ptr);
476 int tipc_port_reject_sections(struct port *p_ptr, struct tipc_msg *hdr,
484 !p_ptr->user_port, &buf);
493 struct port *p_ptr = tipc_port_lock(ref);
496 if (!p_ptr)
499 if (!p_ptr->publ.connected) {
500 tipc_port_unlock(p_ptr);
505 if (p_ptr->probing_state == PROBING) {
506 buf = port_build_self_abort_msg(p_ptr, TIPC_ERR_NO_PORT);
508 buf = port_build_proto_msg(port_peerport(p_ptr),
509 port_peernode(p_ptr),
510 p_ptr->publ.ref,
515 port_out_seqno(p_ptr),
517 port_incr_out_seqno(p_ptr);
518 p_ptr->probing_state = PROBING;
519 k_start_timer(&p_ptr->timer, p_ptr->probing_interval);
521 tipc_port_unlock(p_ptr);
528 struct port *p_ptr = tipc_port_lock(ref);
531 if (!p_ptr)
533 buf = port_build_self_abort_msg(p_ptr, TIPC_ERR_NO_NODE);
534 tipc_port_unlock(p_ptr);
539 static struct sk_buff *port_build_self_abort_msg(struct port *p_ptr, u32 err)
541 u32 imp = msg_importance(&p_ptr->publ.phdr);
543 if (!p_ptr->publ.connected)
547 return port_build_proto_msg(p_ptr->publ.ref,
549 port_peerport(p_ptr),
550 port_peernode(p_ptr),
554 p_ptr->last_in_seqno + 1,
559 static struct sk_buff *port_build_peer_abort_msg(struct port *p_ptr, u32 err)
561 u32 imp = msg_importance(&p_ptr->publ.phdr);
563 if (!p_ptr->publ.connected)
567 return port_build_proto_msg(port_peerport(p_ptr),
568 port_peernode(p_ptr),
569 p_ptr->publ.ref,
574 port_out_seqno(p_ptr),
581 struct port *p_ptr = tipc_port_lock(msg_destport(msg));
588 if (!p_ptr) {
590 } else if (p_ptr->publ.connected) {
591 if (port_peernode(p_ptr) != msg_orignode(msg))
593 if (port_peerport(p_ptr) != msg_origport(msg))
597 u32 myno = ++p_ptr->last_in_seqno;
600 abort_buf = port_build_self_abort_msg(p_ptr, err);
604 int wakeup = tipc_port_congested(p_ptr) &&
605 p_ptr->publ.congested &&
606 p_ptr->wakeup;
607 p_ptr->acked += msg_msgcnt(msg);
608 if (tipc_port_congested(p_ptr))
610 p_ptr->publ.congested = 0;
613 p_ptr->wakeup(&p_ptr->publ);
616 } else if (p_ptr->publ.published) {
641 port_out_seqno(p_ptr),
644 p_ptr->probing_state = CONFIRMED;
645 port_incr_out_seqno(p_ptr);
647 if (p_ptr)
648 tipc_port_unlock(p_ptr);
654 static void port_print(struct port *p_ptr, struct print_buf *buf, int full_id)
661 tipc_node(tipc_own_addr), p_ptr->publ.ref);
663 tipc_printf(buf, "%-10u:", p_ptr->publ.ref);
665 if (p_ptr->publ.connected) {
666 u32 dport = port_peerport(p_ptr);
667 u32 destnode = port_peernode(p_ptr);
672 if (p_ptr->publ.conn_type != 0)
674 p_ptr->publ.conn_type,
675 p_ptr->publ.conn_instance);
677 else if (p_ptr->publ.published) {
679 list_for_each_entry(publ, &p_ptr->publications, pport_list) {
698 struct port *p_ptr;
708 list_for_each_entry(p_ptr, &ports, port_list) {
709 spin_lock_bh(p_ptr->publ.lock);
710 port_print(p_ptr, &pb, 0);
711 spin_unlock_bh(p_ptr->publ.lock);
725 struct port *p_ptr;
729 list_for_each_entry(p_ptr, &ports, port_list) {
730 msg = &p_ptr->publ.phdr;
755 struct port *p_ptr;
772 p_ptr = tipc_port_lock(dref);
773 if (!p_ptr)
778 up_ptr = p_ptr->user_port;
780 connected = p_ptr->publ.connected;
781 published = p_ptr->publ.published;
790 u32 peer_port = port_peerport(p_ptr);
791 u32 peer_node = port_peernode(p_ptr);
793 tipc_port_unlock(p_ptr);
802 if (unlikely(++p_ptr->publ.conn_unacked >=
805 p_ptr->publ.conn_unacked);
814 tipc_port_unlock(p_ptr);
827 tipc_port_unlock(p_ptr);
851 u32 peer_port = port_peerport(p_ptr);
852 u32 peer_node = port_peernode(p_ptr);
854 tipc_port_unlock(p_ptr);
869 tipc_port_unlock(p_ptr);
882 tipc_port_unlock(p_ptr);
932 struct port *p_ptr;
937 p_ptr = tipc_port_lock(ref);
938 if (p_ptr) {
939 up_ptr = p_ptr->user_port;
944 tipc_port_unlock(p_ptr);
951 static void port_wakeup(struct tipc_port *p_ptr)
953 tipc_k_signal((Handler)port_wakeup_sh, p_ptr->ref);
958 struct port *p_ptr;
961 p_ptr = tipc_port_lock(ref);
962 if (!p_ptr)
964 if (p_ptr->publ.connected) {
965 p_ptr->publ.conn_unacked -= ack;
966 buf = port_build_proto_msg(port_peerport(p_ptr),
967 port_peernode(p_ptr),
973 port_out_seqno(p_ptr),
976 tipc_port_unlock(p_ptr);
998 struct port *p_ptr;
1005 p_ptr = (struct port *)tipc_createport_raw(NULL, port_dispatcher,
1007 if (!p_ptr) {
1012 p_ptr->user_port = up_ptr;
1015 up_ptr->ref = p_ptr->publ.ref;
1025 *portref = p_ptr->publ.ref;
1026 tipc_port_unlock(p_ptr);
1039 struct port *p_ptr;
1041 p_ptr = tipc_port_lock(ref);
1042 if (!p_ptr)
1044 *importance = (unsigned int)msg_importance(&p_ptr->publ.phdr);
1045 tipc_port_unlock(p_ptr);
1051 struct port *p_ptr;
1056 p_ptr = tipc_port_lock(ref);
1057 if (!p_ptr)
1059 msg_set_importance(&p_ptr->publ.phdr, (u32)imp);
1060 tipc_port_unlock(p_ptr);
1067 struct port *p_ptr;
1072 p_ptr = tipc_port_lock(ref);
1073 if (!p_ptr)
1076 dbg("tipc_publ %u, p_ptr = %x, conn = %x, scope = %x, "
1078 ref, p_ptr, p_ptr->publ.connected, scope, seq->lower, seq->upper);
1079 if (p_ptr->publ.connected)
1085 key = ref + p_ptr->pub_count + 1;
1091 scope, p_ptr->publ.ref, key);
1093 list_add(&publ->pport_list, &p_ptr->publications);
1094 p_ptr->pub_count++;
1095 p_ptr->publ.published = 1;
1099 tipc_port_unlock(p_ptr);
1105 struct port *p_ptr;
1110 p_ptr = tipc_port_lock(ref);
1111 if (!p_ptr)
1115 &p_ptr->publications, pport_list) {
1122 &p_ptr->publications, pport_list) {
1137 if (list_empty(&p_ptr->publications))
1138 p_ptr->publ.published = 0;
1139 tipc_port_unlock(p_ptr);
1145 struct port *p_ptr;
1149 p_ptr = tipc_port_lock(ref);
1150 if (!p_ptr)
1152 if (p_ptr->publ.published || p_ptr->publ.connected)
1157 msg = &p_ptr->publ.phdr;
1161 msg_set_origport(msg, p_ptr->publ.ref);
1169 p_ptr->probing_interval = PROBING_INTERVAL;
1170 p_ptr->probing_state = CONFIRMED;
1171 p_ptr->publ.connected = 1;
1172 k_start_timer(&p_ptr->timer, p_ptr->probing_interval);
1174 tipc_nodesub_subscribe(&p_ptr->subscription,peer->node,
1179 tipc_port_unlock(p_ptr);
1180 p_ptr->publ.max_pkt = tipc_link_get_max_pkt(peer->node, ref);
1213 struct port *p_ptr;
1216 p_ptr = tipc_port_lock(ref);
1217 if (!p_ptr)
1219 res = tipc_disconnect_port((struct tipc_port *)p_ptr);
1220 tipc_port_unlock(p_ptr);
1229 struct port *p_ptr;
1232 p_ptr = tipc_port_lock(ref);
1233 if (!p_ptr)
1236 if (p_ptr->publ.connected) {
1237 u32 imp = msg_importance(&p_ptr->publ.phdr);
1240 buf = port_build_proto_msg(port_peerport(p_ptr),
1241 port_peernode(p_ptr),
1247 port_out_seqno(p_ptr),
1250 tipc_port_unlock(p_ptr);
1257 struct port *p_ptr;
1259 p_ptr = tipc_port_lock(ref);
1260 if (!p_ptr)
1262 *isconnected = p_ptr->publ.connected;
1263 tipc_port_unlock(p_ptr);
1269 struct port *p_ptr;
1272 p_ptr = tipc_port_lock(ref);
1273 if (!p_ptr)
1275 if (p_ptr->publ.connected) {
1276 peer->ref = port_peerport(p_ptr);
1277 peer->node = port_peernode(p_ptr);
1281 tipc_port_unlock(p_ptr);
1316 struct port *p_ptr;
1320 p_ptr = tipc_port_deref(ref);
1321 if (!p_ptr || !p_ptr->publ.connected)
1324 p_ptr->publ.congested = 1;
1325 if (!tipc_port_congested(p_ptr)) {
1326 destnode = port_peernode(p_ptr);
1328 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
1331 res = tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1334 port_incr_out_seqno(p_ptr);
1335 p_ptr->publ.congested = 0;
1336 p_ptr->sent++;
1340 if (port_unreliable(p_ptr)) {
1341 p_ptr->publ.congested = 0;
1354 struct port *p_ptr;
1361 p_ptr = tipc_port_deref(ref);
1362 if (!p_ptr || !p_ptr->publ.connected)
1365 msg = &p_ptr->publ.phdr;
1375 p_ptr->publ.congested = 1;
1376 if (!tipc_port_congested(p_ptr)) {
1384 port_incr_out_seqno(p_ptr);
1385 p_ptr->sent++;
1386 p_ptr->publ.congested = 0;
1390 if (port_unreliable(p_ptr)) {
1391 p_ptr->publ.congested = 0;
1409 struct port *p_ptr;
1415 p_ptr = tipc_port_deref(ref);
1416 if (!p_ptr || p_ptr->publ.connected)
1419 msg = &p_ptr->publ.phdr;
1434 p_ptr->sent++;
1436 return tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1437 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
1441 if (port_unreliable(p_ptr)) {
1447 return tipc_port_reject_sections(p_ptr, msg, msg_sect, num_sect,
1481 struct port *p_ptr;
1487 p_ptr = (struct port *)tipc_ref_deref(ref);
1488 if (!p_ptr || p_ptr->publ.connected)
1491 msg = &p_ptr->publ.phdr;
1512 p_ptr->sent++;
1518 if (port_unreliable(p_ptr))
1554 struct port *p_ptr;
1558 p_ptr = tipc_port_deref(ref);
1559 if (!p_ptr || p_ptr->publ.connected)
1562 msg = &p_ptr->publ.phdr;
1571 p_ptr->sent++;
1573 return tipc_port_recv_sections(p_ptr, num_sect, msg_sect);
1574 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect, dest->node);
1577 if (port_unreliable(p_ptr)) {
1611 struct port *p_ptr;
1615 p_ptr = (struct port *)tipc_ref_deref(ref);
1616 if (!p_ptr || p_ptr->publ.connected)
1619 msg = &p_ptr->publ.phdr;
1635 p_ptr->sent++;
1641 if (port_unreliable(p_ptr))