summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/ip_input.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index cd38a1e..7dae1d0 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -1738,8 +1738,21 @@ ip_forward(struct mbuf *m, int srcrt, struct sockaddr_in *next_hop)
}
}
+ {
+ struct m_hdr tag;
+
+ if (next_hop) {
+ /* Pass IPFORWARD info if available */
+
+ tag.mh_type = MT_TAG;
+ tag.mh_flags = PACKET_TAG_IPFORWARD;
+ tag.mh_data = (caddr_t)next_hop;
+ tag.mh_next = m;
+ m = (struct mbuf *)&tag;
+ }
error = ip_output(m, (struct mbuf *)0, &ipforward_rt,
IP_FORWARDING, 0);
+ }
if (error)
ipstat.ips_cantforward++;
else {
OpenPOWER on IntegriCloud