|
@@ -157,6 +157,7 @@ void nf_send_reset6(struct net *net, struct sk_buff *oldskb, int hook)
|
|
|
fl6.fl6_sport = otcph->dest;
|
|
|
fl6.fl6_dport = otcph->source;
|
|
|
fl6.flowi6_oif = l3mdev_master_ifindex(skb_dst(oldskb)->dev);
|
|
|
+ fl6.flowi6_mark = IP6_REPLY_MARK(net, oldskb->mark);
|
|
|
security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6));
|
|
|
dst = ip6_route_output(net, NULL, &fl6);
|
|
|
if (dst->error) {
|
|
@@ -180,6 +181,8 @@ void nf_send_reset6(struct net *net, struct sk_buff *oldskb, int hook)
|
|
|
|
|
|
skb_dst_set(nskb, dst);
|
|
|
|
|
|
+ nskb->mark = fl6.flowi6_mark;
|
|
|
+
|
|
|
skb_reserve(nskb, hh_len + dst->header_len);
|
|
|
ip6h = nf_reject_ip6hdr_put(nskb, oldskb, IPPROTO_TCP,
|
|
|
ip6_dst_hoplimit(dst));
|