Summary: | r276149 breaks gif with if_bridge and EtherIP | ||
---|---|---|---|
Product: | Base System | Reporter: | John Nielsen <john> |
Component: | bin | Assignee: | Andrey V. Elsukov <ae> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | ||
Priority: | --- | ||
Version: | 10.1-STABLE | ||
Hardware: | Any | ||
OS: | Any |
Description
John Nielsen
2015-01-12 18:31:01 UTC
Hi, Due to an issue with the backend FreeBSD Bugzilla database, your original PR and any updates to it since have been lost. I've recreated the original PR as best as I can, however any attachments and updates you submitted to the PR have been lost. Please could you resubmit them? Thanks, and apologies. The comment describing my use case was lost. Basically I configure only the outer tunnel of the gif interface and then add it to a bridge, so EtherIP is sent over the inner tunnel. Useful for e.g. bridging two Ethernet segments connected by a non-Ethernet link (802.11 in infrastructure mode, IPoIB, etc). This has been fixed in head by commit r276907 and I confirmed that the same patch fixes the issue in 10-STABLE. Thanks ae! My suggestion would be to leave the ticket open as a reminder to MFC the relevant changes next week. A commit references this bug: Author: ae Date: Sat Jan 17 11:43:14 UTC 2015 New revision: 277297 URL: https://svnweb.freebsd.org/changeset/base/277297 Log: MFC r276901: Move the recursion detection code into separate function gif_check_nesting(). Also make MTAG_GIF definition private to if_gif.c. MFC r276907: Restore Ethernet-within-IP Encapsulation support that was broken after r273087. Move all checks from gif_output() into gif_transmit(). Previously they were checked always, because if_start always called gif_output. Now gif_transmit() can be called directly from if_bridge() code and we need do checks here. PR: 196646 Changes: _U stable/10/ stable/10/sys/net/if_gif.c stable/10/sys/net/if_gif.h Fixed in r277297. |