# why tcphdr&optionlen continuous procedure need jude M_LOOP flag with IP6_EXTHDR_CHECK in tcp_input.c



## angelyouyou (Sep 13, 2016)

in tcp_input file when process tcphdr&optionlen continuous (for processing option check):
1.For ipv4, here we call m_pullup;
2.For ipv6, here we call IP6_EXTHDR_CHECK, in this macro it jude M_LOOP. In this case, when packets were received, it calls m_pullup just when M_LOOP is set.M_LOOP is set when loopback and output packets case.
so, my question is:why it is different between ipv4 and ipv6?why jude M_LOOP flag here?


----------



## Juha Nurmela (Sep 13, 2016)

Did you see the comment

```
KAME requires drivers
 * to store incoming data into one internal mbuf or one or more external
```

Knowing nothing about the issue,
Juha


----------



## DutchDaemon (Sep 13, 2016)

Topics of a purely technical nature are usually handled by developers, who don't hang out in the (mostly end-user) forums here. Try the https://lists.freebsd.org/mailman/listinfo/freebsd-hackers mailing list.


----------

