freebsd-dev/sbin/ifconfig
Hiroki Sato dbe5926046 Fix and add a workaround on an issue of EtherIP packet with reversed
version field sent via gif(4)+if_bridge(4).  The EtherIP
implementation found on FreeBSD 6.1, 6.2, 6.3, 7.0, 7.1, and 7.2 had
an interoperability issue because it sent the incorrect EtherIP
packets and discarded the correct ones.

This change introduces the following two flags to gif(4):

 accept_rev_ethip_ver: accepts both correct EtherIP packets and ones
    with reversed version field, if enabled.  If disabled, the gif
    accepts the correct packets only.  This flag is enabled by
    default.

 send_rev_ethip_ver: sends EtherIP packets with reversed version field
    intentionally, if enabled.  If disabled, the gif sends the correct
    packets only.  This flag is disabled by default.

These flags are stored in struct gif_softc and can be set by
ifconfig(8) on per-interface basis.

Note that this is an incompatible change of EtherIP with the older
FreeBSD releases.  If you need to interoperate older FreeBSD boxes and
new versions after this commit, setting "send_rev_ethip_ver" is
needed.

Reviewed by:	thompsa and rwatson
Spotted by:	Shunsuke SHINOMIYA
PR:		kern/125003
MFC after:	2 weeks
2009-06-07 23:00:40 +00:00
..
af_atalk.c use getifaddrs from libc instead of private code 2007-02-24 23:55:46 +00:00
af_inet6.c use getifaddrs from libc instead of private code 2007-02-24 23:55:46 +00:00
af_inet.c The structs ifaliasreq and in_aliasreq have exactly the same layout and 2009-04-15 20:53:34 +00:00
af_ipx.c Remove IPX over IP tunneling pieces from ifconfig(8), omitted portion of 2007-06-13 18:07:59 +00:00
af_link.c use getifaddrs from libc instead of private code 2007-02-24 23:55:46 +00:00
ifbridge.c Add an option to limit the number of source MACs that can be behind a bridge 2007-11-04 08:32:27 +00:00
ifcarp.c Use afswch->af_other_status for carp_status() and pfsync_status(). 2005-02-22 14:07:47 +00:00
ifclone.c Default to AF_LOCAL instead of AF_INET sockets for non-family-specific 2009-03-15 22:33:18 +00:00
ifconfig.8 TDMA support for long distance point-to-point links using ath devices: 2009-01-08 17:12:47 +00:00
ifconfig.c ifconfig(8) no longer needs to know how to print the IFF_NEEDSGIANT flag, 2009-04-18 20:10:39 +00:00
ifconfig.h Replace clone_setcallback() with a new function clone_setdefcallback() 2009-02-27 00:31:34 +00:00
ifgif.c Fix and add a workaround on an issue of EtherIP packet with reversed 2009-06-07 23:00:40 +00:00
ifgre.c Move the grekey to its own file, ifconfig.c does not have interface specific 2008-08-03 03:36:12 +00:00
ifgroup.c Default to AF_LOCAL instead of AF_INET sockets for non-family-specific 2009-03-15 22:33:18 +00:00
ifieee80211.c track rename of CSA ie 2009-06-04 18:22:21 +00:00
iflagg.c Do no spam the ifconfig output for the aggregated interface with 'laggdev laggX'. 2009-04-30 14:31:52 +00:00
ifmac.c Fix special status reporting. Prior to the reorg there was 2004-12-31 19:46:27 +00:00
ifmedia.c Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
ifpfsync.c Print pfsync interface status if either syncpeer or syncdev is configured. 2006-06-06 11:21:08 +00:00
ifvlan.c Replace clone_setcallback() with a new function clone_setdefcallback() 2009-02-27 00:31:34 +00:00
Makefile Fix and add a workaround on an issue of EtherIP packet with reversed 2009-06-07 23:00:40 +00:00
regdomain.c Regulatory fixups: 2009-02-07 01:12:51 +00:00
regdomain.h Regulatory fixups: 2009-02-07 01:12:51 +00:00