Lines Matching defs:freq

375 fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,
383 olen = optlen - CMSG_ALIGN(sizeof(*freq));
407 CMSG_ALIGN(sizeof(*freq)), olen))
429 err = fl6_renew(fl, freq->flr_linger, freq->flr_expires);
432 fl->share = freq->flr_share;
433 addr_type = ipv6_addr_type(&freq->flr_dst);
439 fl->dst = freq->flr_dst;
505 int ipv6_flowlabel_opt_get(struct sock *sk, struct in6_flowlabel_req *freq,
512 freq->flr_label = np->rcv_flowinfo & IPV6_FLOWLABEL_MASK;
517 freq->flr_label = np->flow_label;
526 freq->flr_label = sfl->fl->label;
527 freq->flr_dst = sfl->fl->dst;
528 freq->flr_share = sfl->fl->share;
529 freq->flr_expires = (sfl->fl->expires - jiffies) / HZ;
530 freq->flr_linger = sfl->fl->linger / HZ;
545 static int ipv6_flowlabel_put(struct sock *sk, struct in6_flowlabel_req *freq)
551 if (freq->flr_flags & IPV6_FL_F_REFLECT) {
565 if (sfl->fl->label == freq->flr_label)
571 if (freq->flr_label == (np->flow_label & IPV6_FLOWLABEL_MASK))
580 static int ipv6_flowlabel_renew(struct sock *sk, struct in6_flowlabel_req *freq)
588 if (sfl->fl->label == freq->flr_label) {
589 err = fl6_renew(sfl->fl, freq->flr_linger,
590 freq->flr_expires);
597 if (freq->flr_share == IPV6_FL_S_NONE &&
599 struct ip6_flowlabel *fl = fl_lookup(net, freq->flr_label);
602 err = fl6_renew(fl, freq->flr_linger,
603 freq->flr_expires);
611 static int ipv6_flowlabel_get(struct sock *sk, struct in6_flowlabel_req *freq,
619 if (freq->flr_flags & IPV6_FL_F_REFLECT) {
631 if (freq->flr_label & ~IPV6_FLOWLABEL_MASK)
634 (freq->flr_label & IPV6_FLOWLABEL_STATELESS_FLAG))
637 fl = fl_create(net, sk, freq, optval, optlen, &err);
643 if (freq->flr_label) {
647 if (sfl->fl->label == freq->flr_label) {
648 if (freq->flr_flags & IPV6_FL_F_EXCL) {
661 fl1 = fl_lookup(net, freq->flr_label);
665 if (freq->flr_flags&IPV6_FL_F_EXCL)
693 if (!(freq->flr_flags & IPV6_FL_F_CREATE))
704 fl1 = fl_intern(net, fl, freq->flr_label);
708 if (!freq->flr_label) {
727 struct in6_flowlabel_req freq;
729 if (optlen < sizeof(freq))
731 if (copy_from_sockptr(&freq, optval, sizeof(freq)))
734 switch (freq.flr_action) {
736 return ipv6_flowlabel_put(sk, &freq);
738 return ipv6_flowlabel_renew(sk, &freq);
740 return ipv6_flowlabel_get(sk, &freq, optval, optlen);