Lines Matching refs:opts
402 struct ipopt_tag *opts; in save_rte() local
404 opts = (struct ipopt_tag *)m_tag_get(PACKET_TAG_IPOPTIONS, in save_rte()
406 if (opts == NULL) in save_rte()
410 if (olen > sizeof(opts->ip_srcrt) - (1 + sizeof(dst))) { in save_rte()
411 m_tag_free((struct m_tag *)opts); in save_rte()
414 bcopy(option, opts->ip_srcrt.srcopt, olen); in save_rte()
415 opts->ip_nhops = (olen - IPOPT_OFFSET - 1) / sizeof(struct in_addr); in save_rte()
416 opts->ip_srcrt.dst = dst; in save_rte()
417 m_tag_prepend(m, (struct m_tag *)opts); in save_rte()
430 struct ipopt_tag *opts; in ip_srcroute() local
432 opts = (struct ipopt_tag *)m_tag_find(m0, PACKET_TAG_IPOPTIONS, NULL); in ip_srcroute()
433 if (opts == NULL) in ip_srcroute()
436 if (opts->ip_nhops == 0) in ip_srcroute()
442 #define OPTSIZ (sizeof(opts->ip_srcrt.nop) + sizeof(opts->ip_srcrt.srcopt)) in ip_srcroute()
445 m->m_len = opts->ip_nhops * sizeof(struct in_addr) + in ip_srcroute()
451 p = &(opts->ip_srcrt.route[opts->ip_nhops - 1]); in ip_srcroute()
457 opts->ip_srcrt.nop = IPOPT_NOP; in ip_srcroute()
458 opts->ip_srcrt.srcopt[IPOPT_OFFSET] = IPOPT_MINOFF; in ip_srcroute()
460 &(opts->ip_srcrt.nop), OPTSIZ); in ip_srcroute()
468 while (p >= opts->ip_srcrt.route) { in ip_srcroute()
474 *q = opts->ip_srcrt.dst; in ip_srcroute()
475 m_tag_delete(m0, (struct m_tag *)opts); in ip_srcroute()