Lines Matching full:opt
1548 unsigned char *opt = *option; in cipso_v4_validate() local
1558 opt_len = opt[1]; in cipso_v4_validate()
1565 doi_def = cipso_v4_doi_search(get_unaligned_be32(&opt[2])); in cipso_v4_validate()
1572 tag = opt + opt_iter; in cipso_v4_validate()
1685 *option = opt + err_offset; in cipso_v4_validate()
1719 struct ip_options *opt = (struct ip_options *)optbuf; in cipso_v4_error() local
1730 memset(opt, 0, sizeof(struct ip_options)); in cipso_v4_error()
1731 opt->optlen = ip_hdr(skb)->ihl*4 - sizeof(struct iphdr); in cipso_v4_error()
1733 res = __ip_options_compile(dev_net(skb->dev), opt, skb, NULL); in cipso_v4_error()
1740 __icmp_send(skb, ICMP_DEST_UNREACH, ICMP_NET_ANO, 0, opt); in cipso_v4_error()
1742 __icmp_send(skb, ICMP_DEST_UNREACH, ICMP_HOST_ANO, 0, opt); in cipso_v4_error()
1860 struct ip_options_rcu *old, *opt = NULL; in cipso_v4_sock_setattr() local
1891 opt = kzalloc(sizeof(*opt) + opt_len, GFP_ATOMIC); in cipso_v4_sock_setattr()
1892 if (!opt) { in cipso_v4_sock_setattr()
1896 memcpy(opt->opt.__data, buf, buf_len); in cipso_v4_sock_setattr()
1897 opt->opt.optlen = opt_len; in cipso_v4_sock_setattr()
1898 opt->opt.cipso = sizeof(struct iphdr); in cipso_v4_sock_setattr()
1908 sk_conn->icsk_ext_hdr_len -= old->opt.optlen; in cipso_v4_sock_setattr()
1909 sk_conn->icsk_ext_hdr_len += opt->opt.optlen; in cipso_v4_sock_setattr()
1912 rcu_assign_pointer(sk_inet->inet_opt, opt); in cipso_v4_sock_setattr()
1920 kfree(opt); in cipso_v4_sock_setattr()
1944 struct ip_options_rcu *opt = NULL; in cipso_v4_req_setattr() local
1967 opt = kzalloc(sizeof(*opt) + opt_len, GFP_ATOMIC); in cipso_v4_req_setattr()
1968 if (!opt) { in cipso_v4_req_setattr()
1972 memcpy(opt->opt.__data, buf, buf_len); in cipso_v4_req_setattr()
1973 opt->opt.optlen = opt_len; in cipso_v4_req_setattr()
1974 opt->opt.cipso = sizeof(struct iphdr); in cipso_v4_req_setattr()
1979 opt = unrcu_pointer(xchg(&req_inet->ireq_opt, RCU_INITIALIZER(opt))); in cipso_v4_req_setattr()
1980 if (opt) in cipso_v4_req_setattr()
1981 kfree_rcu(opt, rcu); in cipso_v4_req_setattr()
1987 kfree(opt); in cipso_v4_req_setattr()
2003 struct ip_options_rcu *opt = rcu_dereference_protected(*opt_ptr, 1); in cipso_v4_delopt() local
2006 if (!opt || opt->opt.cipso == 0) in cipso_v4_delopt()
2008 if (opt->opt.srr || opt->opt.rr || opt->opt.ts || opt->opt.router_alert) { in cipso_v4_delopt()
2014 cipso_off = opt->opt.cipso - sizeof(struct iphdr); in cipso_v4_delopt()
2015 cipso_ptr = &opt->opt.__data[cipso_off]; in cipso_v4_delopt()
2018 if (opt->opt.srr > opt->opt.cipso) in cipso_v4_delopt()
2019 opt->opt.srr -= cipso_len; in cipso_v4_delopt()
2020 if (opt->opt.rr > opt->opt.cipso) in cipso_v4_delopt()
2021 opt->opt.rr -= cipso_len; in cipso_v4_delopt()
2022 if (opt->opt.ts > opt->opt.cipso) in cipso_v4_delopt()
2023 opt->opt.ts -= cipso_len; in cipso_v4_delopt()
2024 if (opt->opt.router_alert > opt->opt.cipso) in cipso_v4_delopt()
2025 opt->opt.router_alert -= cipso_len; in cipso_v4_delopt()
2026 opt->opt.cipso = 0; in cipso_v4_delopt()
2029 opt->opt.optlen - cipso_off - cipso_len); in cipso_v4_delopt()
2031 optlen_new = cipso_v4_get_actual_opt_len(opt->opt.__data, in cipso_v4_delopt()
2032 opt->opt.optlen); in cipso_v4_delopt()
2033 hdr_delta = opt->opt.optlen; in cipso_v4_delopt()
2034 opt->opt.optlen = (optlen_new + 3) & ~3; in cipso_v4_delopt()
2035 hdr_delta -= opt->opt.optlen; in cipso_v4_delopt()
2040 hdr_delta = opt->opt.optlen; in cipso_v4_delopt()
2041 kfree_rcu(opt, rcu); in cipso_v4_delopt()
2147 struct ip_options_rcu *opt; in cipso_v4_sock_getattr() local
2151 opt = rcu_dereference(inet_sk(sk)->inet_opt); in cipso_v4_sock_getattr()
2152 if (opt && opt->opt.cipso) in cipso_v4_sock_getattr()
2153 res = cipso_v4_getattr(opt->opt.__data + in cipso_v4_sock_getattr()
2154 opt->opt.cipso - in cipso_v4_sock_getattr()
2178 struct ip_options *opt = &IPCB(skb)->opt; in cipso_v4_skbuff_setattr() local
2196 len_delta = opt_len - opt->optlen; in cipso_v4_skbuff_setattr()
2205 /* we assume that the header + opt->optlen have already been in cipso_v4_skbuff_setattr()
2214 memset(iph + 1, IPOPT_NOP, opt->optlen); in cipso_v4_skbuff_setattr()
2218 if (opt->optlen > 0) in cipso_v4_skbuff_setattr()
2219 memset(opt, 0, sizeof(*opt)); in cipso_v4_skbuff_setattr()
2220 opt->optlen = opt_len; in cipso_v4_skbuff_setattr()
2221 opt->cipso = sizeof(struct iphdr); in cipso_v4_skbuff_setattr()
2222 opt->is_changed = 1; in cipso_v4_skbuff_setattr()
2255 struct ip_options *opt = &IPCB(skb)->opt; in cipso_v4_skbuff_delattr() local
2258 if (opt->cipso == 0) in cipso_v4_skbuff_delattr()
2267 cipso_ptr = (unsigned char *)iph + opt->cipso; in cipso_v4_skbuff_delattr()
2272 opt->optlen); in cipso_v4_skbuff_delattr()
2279 new_hdr_len_actual - opt->cipso); in cipso_v4_skbuff_delattr()
2290 opt->optlen -= hdr_len_delta; in cipso_v4_skbuff_delattr()
2291 opt->cipso = 0; in cipso_v4_skbuff_delattr()
2292 opt->is_changed = 1; in cipso_v4_skbuff_delattr()