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 ---