net: Put fl6_* macros to struct flowi6 and use them again.
[deliverable/linux.git] / net / ipv6 / mip6.c
index f3e3ca938a546179dcabab931e6b928752b0356e..9b210482fb056693b7f926a80468d0932e144171 100644 (file)
@@ -208,14 +208,15 @@ static int mip6_destopt_reject(struct xfrm_state *x, struct sk_buff *skb,
 {
        struct net *net = xs_net(x);
        struct inet6_skb_parm *opt = (struct inet6_skb_parm *)skb->cb;
+       const struct flowi6 *fl6 = &fl->u.ip6;
        struct ipv6_destopt_hao *hao = NULL;
        struct xfrm_selector sel;
        int offset;
        struct timeval stamp;
        int err = 0;
 
-       if (unlikely(fl->proto == IPPROTO_MH &&
-                    fl->fl_mh_type <= IP6_MH_TYPE_MAX))
+       if (unlikely(fl6->flowi6_proto == IPPROTO_MH &&
+                    fl6->fl6_mh_type <= IP6_MH_TYPE_MAX))
                goto out;
 
        if (likely(opt->dsthao)) {
@@ -240,14 +241,14 @@ static int mip6_destopt_reject(struct xfrm_state *x, struct sk_buff *skb,
               sizeof(sel.saddr));
        sel.prefixlen_s = 128;
        sel.family = AF_INET6;
-       sel.proto = fl->proto;
-       sel.dport = xfrm_flowi_dport(fl);
+       sel.proto = fl6->flowi6_proto;
+       sel.dport = xfrm_flowi_dport(fl, &fl6->uli);
        if (sel.dport)
                sel.dport_mask = htons(~0);
-       sel.sport = xfrm_flowi_sport(fl);
+       sel.sport = xfrm_flowi_sport(fl, &fl6->uli);
        if (sel.sport)
                sel.sport_mask = htons(~0);
-       sel.ifindex = fl->oif;
+       sel.ifindex = fl6->flowi6_oif;
 
        err = km_report(net, IPPROTO_DSTOPTS, &sel,
                        (hao ? (xfrm_address_t *)&hao->addr : NULL));
This page took 0.027176 seconds and 5 git commands to generate.