Lines Matching defs:rop
204 struct rtpcb *rop = v;
206 refcnt_take(&rop->rop_refcnt);
212 struct rtpcb *rop = v;
214 refcnt_rele_wake(&rop->rop_refcnt);
220 struct rtpcb *rop;
231 rop = pool_get(&rtpcb_pool, (wait == M_WAIT ? PR_WAITOK : PR_NOWAIT) |
233 if (rop == NULL)
235 so->so_pcb = rop;
237 timeout_set_flags(&rop->rop_timeout, rtm_senddesync_timer, so,
239 refcnt_init(&rop->rop_refcnt);
241 rop->rop_socket = so;
242 rop->rop_proto = proto;
244 rop->rop_rtableid = curproc->p_p->ps_rtableid;
250 SRPL_INSERT_HEAD_LOCKED(&rtptable.rtp_rc, &rtptable.rtp_list, rop,
261 struct rtpcb *rop;
265 rop = sotortpcb(so);
266 if (rop == NULL)
272 SRPL_REMOVE_LOCKED(&rtptable.rtp_rc, &rtptable.rtp_list, rop, rtpcb,
279 refcnt_finalize(&rop->rop_refcnt, "rtsockrefs");
280 timeout_del_barrier(&rop->rop_timeout);
286 pool_put(&rtpcb_pool, rop);
308 struct rtpcb *rop = sotortpcb(so);
318 if (((rop->rop_flags & ROUTECB_FLAG_FLUSH) != 0) &&
320 rop->rop_flags &= ~ROUTECB_FLAG_FLUSH;
371 struct rtpcb *rop = sotortpcb(so);
385 rop->rop_msgfilter = *mtod(m, unsigned int *);
396 rop->rop_rtableid = tid;
407 rop->rop_priority = prio;
413 rop->rop_flagfilter = *mtod(m, unsigned int *);
424 *mtod(m, unsigned int *) = rop->rop_msgfilter;
428 *mtod(m, unsigned int *) = rop->rop_rtableid;
432 *mtod(m, unsigned int *) = rop->rop_priority;
436 *mtod(m, unsigned int *) = rop->rop_flagfilter;
459 struct rtpcb *rop = sotortpcb(so);
474 if ((rop->rop_flags & ROUTECB_FLAG_DESYNC) == 0)
491 rop->rop_flags &= ~ROUTECB_FLAG_DESYNC;
492 sorwakeup(rop->rop_socket);
498 timeout_add_msec(&rop->rop_timeout, ROUTE_DESYNC_RESEND_TIMEOUT);
505 struct rtpcb *rop;
516 SRPL_FOREACH(rop, &sr, &rtptable.rtp_list, rop_list) {
522 if (sa_family != AF_UNSPEC && rop->rop_proto != AF_UNSPEC &&
523 rop->rop_proto != sa_family)
527 so = rop->rop_socket;
543 if (rop->rop_msgfilter != 0 &&
544 !(rop->rop_msgfilter & (1U << rtm->rtm_type)))
546 if (ISSET(rop->rop_flagfilter, rtm->rtm_flags))
561 if (rop->rop_rtableid != RTABLE_ANY &&
562 rtable_l2(rop->rop_rtableid) != rtm->rtm_tableid)
566 if (rop->rop_priority != 0 &&
567 rop->rop_priority < rtm->rtm_priority)
570 if (rop->rop_rtableid != RTABLE_ANY &&
571 rop->rop_rtableid != rtm->rtm_tableid)
580 if ((rop->rop_flags & ROUTECB_FLAG_FLUSH) != 0)
595 struct rtpcb *rop = sotortpcb(so);
613 rop->rop_flags |= ROUTECB_FLAG_DESYNC | ROUTECB_FLAG_FLUSH;