seg6_local.c (bba73071b6f71be0a101658d7c13866e30b264a6) | seg6_local.c (b75cc8f90f07342467b3bd51dbc0054f185032c9) |
---|---|
1/* 2 * SR-IPv6 implementation 3 * 4 * Author: 5 * David Lebrun <david.lebrun@uclouvain.be> 6 * 7 * 8 * This program is free software; you can redistribute it and/or --- 147 unchanged lines hidden (view full) --- 156 fl6.flowlabel = ip6_flowinfo(hdr); 157 fl6.flowi6_mark = skb->mark; 158 fl6.flowi6_proto = hdr->nexthdr; 159 160 if (nhaddr) 161 fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; 162 163 if (!tbl_id) { | 1/* 2 * SR-IPv6 implementation 3 * 4 * Author: 5 * David Lebrun <david.lebrun@uclouvain.be> 6 * 7 * 8 * This program is free software; you can redistribute it and/or --- 147 unchanged lines hidden (view full) --- 156 fl6.flowlabel = ip6_flowinfo(hdr); 157 fl6.flowi6_mark = skb->mark; 158 fl6.flowi6_proto = hdr->nexthdr; 159 160 if (nhaddr) 161 fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; 162 163 if (!tbl_id) { |
164 dst = ip6_route_input_lookup(net, skb->dev, &fl6, flags); | 164 dst = ip6_route_input_lookup(net, skb->dev, &fl6, skb, flags); |
165 } else { 166 struct fib6_table *table; 167 168 table = fib6_get_table(net, tbl_id); 169 if (!table) 170 goto out; 171 | 165 } else { 166 struct fib6_table *table; 167 168 table = fib6_get_table(net, tbl_id); 169 if (!table) 170 goto out; 171 |
172 rt = ip6_pol_route(net, table, 0, &fl6, flags); | 172 rt = ip6_pol_route(net, table, 0, &fl6, skb, flags); |
173 dst = &rt->dst; 174 } 175 176 if (dst && dst->dev->flags & IFF_LOOPBACK && !dst->error) { 177 dst_release(dst); 178 dst = NULL; 179 } 180 --- 754 unchanged lines hidden --- | 173 dst = &rt->dst; 174 } 175 176 if (dst && dst->dev->flags & IFF_LOOPBACK && !dst->error) { 177 dst_release(dst); 178 dst = NULL; 179 } 180 --- 754 unchanged lines hidden --- |