tass-belgium / picotcp

PicoTCP is a free TCP/IP stack implementation
Other
1.16k stars 216 forks source link

IPV6 automatically enables IPV6FRAG compilation flag #433

Open phalox opened 7 years ago

phalox commented 7 years ago

This means that IPV6 will always compile in fragmentation due to https://github.com/tass-belgium/picotcp/blob/master/rules/ipv6.mk#L3

Is this wanted behaviour? Why have the FRAG flag then in the first place?

Discovered by PR tass-belgium/picotcp#432

frederikvs commented 7 years ago

IIRC, currently IPv6 won't compile without fragmentation enabled. That's probably why it's enabled automatically. Not sure that's actually the desired behaviour. Seems to me that IPv6 should also function without fragmentation. Once we fix that, we could decouple the make rules again. Doesn't seem to high priority though.

phalox commented 7 years ago

Let's check if this somehow impacts the test that's currently failing. Because it's blocking the entire build flow.

frederikvs commented 7 years ago

This seems unrelated to the test that's currently failing - the test is related to certain combinations of flags not compiling, probably because of unmet implicit dependencies. In the case of IPv6 and fragmentation, the dependency is enforced by the makefile, and therefore met. The question here is whether it's actually a dependency we really need.

frederikvs commented 7 years ago

And yes, you could argue that the .mk file isn't the right place to handle this kind of dependencies, the MODTREE is probably the correct place, although I get the impression that MODTREE isn't sufficiently powerful for our needs anymore. E.g. it states that TCP and UDP both depend on IPv4. Why should this be? Yes, you need either IPv4 or IPv6, but either one should do.