aboutsummaryrefslogtreecommitdiffstats
path: root/net/decnet/dn_fib.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/decnet/dn_fib.c')
-rw-r--r--net/decnet/dn_fib.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/net/decnet/dn_fib.c b/net/decnet/dn_fib.c
index 4dfffa0b67a8..1c74ed36ce8f 100644
--- a/net/decnet/dn_fib.c
+++ b/net/decnet/dn_fib.c
@@ -201,7 +201,7 @@ static int dn_fib_check_nh(const struct rtmsg *r, struct dn_fib_info *fi, struct
201 int err; 201 int err;
202 202
203 if (nh->nh_gw) { 203 if (nh->nh_gw) {
204 struct flowi fl; 204 struct flowidn fld;
205 struct dn_fib_res res; 205 struct dn_fib_res res;
206 206
207 if (nh->nh_flags&RTNH_F_ONLINK) { 207 if (nh->nh_flags&RTNH_F_ONLINK) {
@@ -221,15 +221,15 @@ static int dn_fib_check_nh(const struct rtmsg *r, struct dn_fib_info *fi, struct
221 return 0; 221 return 0;
222 } 222 }
223 223
224 memset(&fl, 0, sizeof(fl)); 224 memset(&fld, 0, sizeof(fld));
225 fl.fld_dst = nh->nh_gw; 225 fld.daddr = nh->nh_gw;
226 fl.flowi_oif = nh->nh_oif; 226 fld.flowidn_oif = nh->nh_oif;
227 fl.fld_scope = r->rtm_scope + 1; 227 fld.flowidn_scope = r->rtm_scope + 1;
228 228
229 if (fl.fld_scope < RT_SCOPE_LINK) 229 if (fld.flowidn_scope < RT_SCOPE_LINK)
230 fl.fld_scope = RT_SCOPE_LINK; 230 fld.flowidn_scope = RT_SCOPE_LINK;
231 231
232 if ((err = dn_fib_lookup(&fl, &res)) != 0) 232 if ((err = dn_fib_lookup(&fld, &res)) != 0)
233 return err; 233 return err;
234 234
235 err = -EINVAL; 235 err = -EINVAL;
@@ -404,7 +404,7 @@ failure:
404 return NULL; 404 return NULL;
405} 405}
406 406
407int dn_fib_semantic_match(int type, struct dn_fib_info *fi, const struct flowi *fl, struct dn_fib_res *res) 407int dn_fib_semantic_match(int type, struct dn_fib_info *fi, const struct flowidn *fld, struct dn_fib_res *res)
408{ 408{
409 int err = dn_fib_props[type].error; 409 int err = dn_fib_props[type].error;
410 410
@@ -424,7 +424,8 @@ int dn_fib_semantic_match(int type, struct dn_fib_info *fi, const struct flowi *
424 for_nexthops(fi) { 424 for_nexthops(fi) {
425 if (nh->nh_flags & RTNH_F_DEAD) 425 if (nh->nh_flags & RTNH_F_DEAD)
426 continue; 426 continue;
427 if (!fl->flowi_oif || fl->flowi_oif == nh->nh_oif) 427 if (!fld->flowidn_oif ||
428 fld->flowidn_oif == nh->nh_oif)
428 break; 429 break;
429 } 430 }
430 if (nhsel < fi->fib_nhs) { 431 if (nhsel < fi->fib_nhs) {
@@ -445,7 +446,7 @@ int dn_fib_semantic_match(int type, struct dn_fib_info *fi, const struct flowi *
445 return err; 446 return err;
446} 447}
447 448
448void dn_fib_select_multipath(const struct flowi *fl, struct dn_fib_res *res) 449void dn_fib_select_multipath(const struct flowidn *fld, struct dn_fib_res *res)
449{ 450{
450 struct dn_fib_info *fi = res->fi; 451 struct dn_fib_info *fi = res->fi;
451 int w; 452 int w;