Lines Matching refs:d
140 static bool tipc_disc_addr_trial_msg(struct tipc_discoverer *d, in tipc_disc_addr_trial_msg() argument
148 struct net *net = d->net; in tipc_disc_addr_trial_msg()
163 msg_set_prevnode(buf_msg(d->skb), sugg_addr); in tipc_disc_addr_trial_msg()
171 msg_set_prevnode(buf_msg(d->skb), tn->trial_addr); in tipc_disc_addr_trial_msg()
172 msg_set_type(buf_msg(d->skb), DSC_REQ_MSG); in tipc_disc_addr_trial_msg()
259 void tipc_disc_add_dest(struct tipc_discoverer *d) in tipc_disc_add_dest() argument
261 spin_lock_bh(&d->lock); in tipc_disc_add_dest()
262 d->num_nodes++; in tipc_disc_add_dest()
263 spin_unlock_bh(&d->lock); in tipc_disc_add_dest()
268 void tipc_disc_remove_dest(struct tipc_discoverer *d) in tipc_disc_remove_dest() argument
272 spin_lock_bh(&d->lock); in tipc_disc_remove_dest()
273 d->num_nodes--; in tipc_disc_remove_dest()
274 num = d->num_nodes; in tipc_disc_remove_dest()
275 intv = d->timer_intv; in tipc_disc_remove_dest()
277 d->timer_intv = TIPC_DISC_INIT; in tipc_disc_remove_dest()
278 mod_timer(&d->timer, jiffies + d->timer_intv); in tipc_disc_remove_dest()
280 spin_unlock_bh(&d->lock); in tipc_disc_remove_dest()
291 struct tipc_discoverer *d = from_timer(d, t, timer); in tipc_disc_timeout() local
292 struct tipc_net *tn = tipc_net(d->net); in tipc_disc_timeout()
295 struct net *net = d->net; in tipc_disc_timeout()
298 spin_lock_bh(&d->lock); in tipc_disc_timeout()
301 if (tipc_node(d->domain) && d->num_nodes) { in tipc_disc_timeout()
302 d->timer_intv = TIPC_DISC_INACTIVE; in tipc_disc_timeout()
308 mod_timer(&d->timer, jiffies + TIPC_DISC_INIT); in tipc_disc_timeout()
309 spin_unlock_bh(&d->lock); in tipc_disc_timeout()
316 d->timer_intv = TIPC_DISC_INIT; in tipc_disc_timeout()
318 d->timer_intv *= 2; in tipc_disc_timeout()
319 if (d->num_nodes && d->timer_intv > TIPC_DISC_SLOW) in tipc_disc_timeout()
320 d->timer_intv = TIPC_DISC_SLOW; in tipc_disc_timeout()
321 else if (!d->num_nodes && d->timer_intv > TIPC_DISC_FAST) in tipc_disc_timeout()
322 d->timer_intv = TIPC_DISC_FAST; in tipc_disc_timeout()
323 msg_set_type(buf_msg(d->skb), DSC_REQ_MSG); in tipc_disc_timeout()
324 msg_set_prevnode(buf_msg(d->skb), tn->trial_addr); in tipc_disc_timeout()
327 mod_timer(&d->timer, jiffies + d->timer_intv); in tipc_disc_timeout()
328 memcpy(&maddr, &d->dest, sizeof(maddr)); in tipc_disc_timeout()
329 skb = skb_clone(d->skb, GFP_ATOMIC); in tipc_disc_timeout()
330 bearer_id = d->bearer_id; in tipc_disc_timeout()
332 spin_unlock_bh(&d->lock); in tipc_disc_timeout()
350 struct tipc_discoverer *d; in tipc_disc_create() local
352 d = kmalloc(sizeof(*d), GFP_ATOMIC); in tipc_disc_create()
353 if (!d) in tipc_disc_create()
355 d->skb = tipc_buf_acquire(MAX_H_SIZE + NODE_ID_LEN, GFP_ATOMIC); in tipc_disc_create()
356 if (!d->skb) { in tipc_disc_create()
357 kfree(d); in tipc_disc_create()
360 tipc_disc_init_msg(net, d->skb, DSC_REQ_MSG, b); in tipc_disc_create()
365 msg_set_type(buf_msg(d->skb), DSC_TRIAL_MSG); in tipc_disc_create()
367 memcpy(&d->dest, dest, sizeof(*dest)); in tipc_disc_create()
368 d->net = net; in tipc_disc_create()
369 d->bearer_id = b->identity; in tipc_disc_create()
370 d->domain = b->domain; in tipc_disc_create()
371 d->num_nodes = 0; in tipc_disc_create()
372 d->timer_intv = TIPC_DISC_INIT; in tipc_disc_create()
373 spin_lock_init(&d->lock); in tipc_disc_create()
374 timer_setup(&d->timer, tipc_disc_timeout, 0); in tipc_disc_create()
375 mod_timer(&d->timer, jiffies + d->timer_intv); in tipc_disc_create()
376 b->disc = d; in tipc_disc_create()
377 *skb = skb_clone(d->skb, GFP_ATOMIC); in tipc_disc_create()
385 void tipc_disc_delete(struct tipc_discoverer *d) in tipc_disc_delete() argument
387 del_timer_sync(&d->timer); in tipc_disc_delete()
388 kfree_skb(d->skb); in tipc_disc_delete()
389 kfree(d); in tipc_disc_delete()
399 struct tipc_discoverer *d = b->disc; in tipc_disc_reset() local
403 spin_lock_bh(&d->lock); in tipc_disc_reset()
404 tipc_disc_init_msg(net, d->skb, DSC_REQ_MSG, b); in tipc_disc_reset()
405 d->net = net; in tipc_disc_reset()
406 d->bearer_id = b->identity; in tipc_disc_reset()
407 d->domain = b->domain; in tipc_disc_reset()
408 d->num_nodes = 0; in tipc_disc_reset()
409 d->timer_intv = TIPC_DISC_INIT; in tipc_disc_reset()
410 memcpy(&maddr, &d->dest, sizeof(maddr)); in tipc_disc_reset()
411 mod_timer(&d->timer, jiffies + d->timer_intv); in tipc_disc_reset()
412 skb = skb_clone(d->skb, GFP_ATOMIC); in tipc_disc_reset()
413 spin_unlock_bh(&d->lock); in tipc_disc_reset()