Lines Matching refs:freq

354 fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,  in fl_create()  argument
362 olen = optlen - CMSG_ALIGN(sizeof(*freq)); in fl_create()
385 if (copy_from_user(fl->opt+1, optval+CMSG_ALIGN(sizeof(*freq)), olen)) in fl_create()
407 err = fl6_renew(fl, freq->flr_linger, freq->flr_expires); in fl_create()
410 fl->share = freq->flr_share; in fl_create()
411 addr_type = ipv6_addr_type(&freq->flr_dst); in fl_create()
417 fl->dst = freq->flr_dst; in fl_create()
475 int ipv6_flowlabel_opt_get(struct sock *sk, struct in6_flowlabel_req *freq, in ipv6_flowlabel_opt_get() argument
482 freq->flr_label = np->rcv_flowinfo & IPV6_FLOWLABEL_MASK; in ipv6_flowlabel_opt_get()
487 freq->flr_label = np->flow_label; in ipv6_flowlabel_opt_get()
496 freq->flr_label = sfl->fl->label; in ipv6_flowlabel_opt_get()
497 freq->flr_dst = sfl->fl->dst; in ipv6_flowlabel_opt_get()
498 freq->flr_share = sfl->fl->share; in ipv6_flowlabel_opt_get()
499 freq->flr_expires = (sfl->fl->expires - jiffies) / HZ; in ipv6_flowlabel_opt_get()
500 freq->flr_linger = sfl->fl->linger / HZ; in ipv6_flowlabel_opt_get()
517 struct in6_flowlabel_req freq; in ipv6_flowlabel_opt() local
524 if (optlen < sizeof(freq)) in ipv6_flowlabel_opt()
527 if (copy_from_user(&freq, optval, sizeof(freq))) in ipv6_flowlabel_opt()
530 switch (freq.flr_action) { in ipv6_flowlabel_opt()
532 if (freq.flr_flags & IPV6_FL_F_REFLECT) { in ipv6_flowlabel_opt()
546 if (sfl->fl->label == freq.flr_label) { in ipv6_flowlabel_opt()
547 if (freq.flr_label == (np->flow_label&IPV6_FLOWLABEL_MASK)) in ipv6_flowlabel_opt()
562 if (sfl->fl->label == freq.flr_label) { in ipv6_flowlabel_opt()
563 err = fl6_renew(sfl->fl, freq.flr_linger, freq.flr_expires); in ipv6_flowlabel_opt()
570 if (freq.flr_share == IPV6_FL_S_NONE && in ipv6_flowlabel_opt()
572 fl = fl_lookup(net, freq.flr_label); in ipv6_flowlabel_opt()
574 err = fl6_renew(fl, freq.flr_linger, freq.flr_expires); in ipv6_flowlabel_opt()
582 if (freq.flr_flags & IPV6_FL_F_REFLECT) { in ipv6_flowlabel_opt()
596 if (freq.flr_label & ~IPV6_FLOWLABEL_MASK) in ipv6_flowlabel_opt()
600 (freq.flr_label & IPV6_FLOWLABEL_STATELESS_FLAG)) in ipv6_flowlabel_opt()
603 fl = fl_create(net, sk, &freq, optval, optlen, &err); in ipv6_flowlabel_opt()
608 if (freq.flr_label) { in ipv6_flowlabel_opt()
612 if (sfl->fl->label == freq.flr_label) { in ipv6_flowlabel_opt()
613 if (freq.flr_flags&IPV6_FL_F_EXCL) { in ipv6_flowlabel_opt()
625 fl1 = fl_lookup(net, freq.flr_label); in ipv6_flowlabel_opt()
629 if (freq.flr_flags&IPV6_FL_F_EXCL) in ipv6_flowlabel_opt()
657 if (!(freq.flr_flags&IPV6_FL_F_CREATE)) in ipv6_flowlabel_opt()
668 fl1 = fl_intern(net, fl, freq.flr_label); in ipv6_flowlabel_opt()
672 if (!freq.flr_label) { in ipv6_flowlabel_opt()