diff options
author | gallatin <gallatin@FreeBSD.org> | 2005-03-25 16:05:42 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 2005-03-25 16:05:42 +0000 |
commit | 8f6333ad923689e66f652a48173d747e52b3f26b (patch) | |
tree | 42b530bb03c6e96b0784d8e89786df0eb8e8fa1f /sys/net | |
parent | 4057d2fbc5d5754e036929e3f1a4d4357b823366 (diff) | |
download | FreeBSD-src-8f6333ad923689e66f652a48173d747e52b3f26b.zip FreeBSD-src-8f6333ad923689e66f652a48173d747e52b3f26b.tar.gz |
Zero the reserved fields of the header, as per rfc 2734. This change
results in connectivty to MacOSX hosts via fwip.
Thanks to Apple's Arulchandran Paramasivam <arulchandranp@apple.com> for
letting us know what we were doing wrong.
Reviewed by: dfr
MFC After: 7 days
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_fwsubr.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net/if_fwsubr.c b/sys/net/if_fwsubr.c index 7570c4e..7cbd7ac 100644 --- a/sys/net/if_fwsubr.c +++ b/sys/net/if_fwsubr.c @@ -236,6 +236,7 @@ firewire_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, enc = mtod(m, union fw_encap *); enc->unfrag.ether_type = type; enc->unfrag.lf = FW_ENCAP_UNFRAG; + enc->unfrag.reserved = 0; /* * Byte swap the encapsulation header manually. @@ -277,6 +278,8 @@ firewire_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, enc = mtod(m, union fw_encap *); if (foff == 0) { enc->firstfrag.lf = FW_ENCAP_FIRST; + enc->firstfrag.reserved1 = 0; + enc->firstfrag.reserved2 = 0; enc->firstfrag.datagram_size = dsize - 1; enc->firstfrag.ether_type = type; enc->firstfrag.dgl = dgl; @@ -285,6 +288,9 @@ firewire_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, enc->nextfrag.lf = FW_ENCAP_NEXT; else enc->nextfrag.lf = FW_ENCAP_LAST; + enc->nextfrag.reserved1 = 0; + enc->nextfrag.reserved2 = 0; + enc->nextfrag.reserved3 = 0; enc->nextfrag.datagram_size = dsize - 1; enc->nextfrag.fragment_offset = foff; enc->nextfrag.dgl = dgl; |