Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Oct 2002 19:03:33 +0900
From:      JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= <jinmei@isl.rdc.toshiba.co.jp>
To:        "Sam Leffler" <sam@errno.com>
Cc:        "Julian Elischer" <julian@elischer.org>, <freebsd-arch@FreeBSD.ORG>, <freebsd-net@FreeBSD.ORG>
Subject:   Re: CFR: m_tag patch
Message-ID:  <y7vbs5u4s5m.wl@ocean.jinmei.org>
In-Reply-To: <080101c27151$b2e92a30$52557f42@errno.com>
References:  <Pine.BSF.4.21.0210071613260.34884-100000@InterJet.elischer.org> <18d301c26e5e$8b5c7a30$52557f42@errno.com> <y7vd6qhg0vj.wl@ocean.jinmei.org> <080101c27151$b2e92a30$52557f42@errno.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> On Fri, 11 Oct 2002 11:12:02 -0700, 
>>>>> "Sam Leffler" <sam@errno.com> said:

>> > struct m_tag {
>> >         SLIST_ENTRY(m_tag)      m_tag_link;     /* List of packet tags
> */
>> >         u_int16_t               m_tag_id;       /* Tag ID */
>> >         u_int16_t               m_tag_len;      /* Length of data */
>> >         u_int32_t               m_tag_cookie;  /* Module/ABI */
>> > };

(snip)

>> Sorry for interrupting, but please let me make it sure.  Do you intend
>> to hide the additional member from other modules than the m_tag
>> internal?  I'm afraid a story that (e.g.)  some code fragments in the
>> network layer directly refers to m_tag_cookie, which will break source
>> level compatibility with other BSDs (when the code fragments are
>> shared with others).  As suz said before, we (KAME) are very much
>> afraid of this kind of story.

> The changes I'm proposing for KAME code make no references to m_tag_cookie.
> Things should be clear when you have a patch to look at.

I know that, but what I'm worrying about is a story that *.c under
netinet[6] will have a direct reference to m_tag_cookie *in the
future".  Then we'll need to separate the code fragments like this:

#if defined(__FreeBSD__) && && __FreeBSD__ >= 5
			if (mtag->m_tag_cookie != PACKET_TAG_IPSEC_OUT_DONE &&
			    mtag->m_tag_cookie !=
			    PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED)
				continue;
#else
			if (mtag->m_tag_id != PACKET_TAG_IPSEC_OUT_DONE &&
			    mtag->m_tag_id !=
			    PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED)
				continue;
#endif
(derived from the current KAME's ip6_output.c)

We've experienced a lot of headaches due to this type of
incompatibility.  I fully understand that once some changes are
incorporated to a particular BSD, the BSD developers are free to
modify the code based on their local policy, even if the result
introduces the incompatibility with other BSDs.  Of course, there
should be a reason for the modification, and the change may provide a
better behavior.  So, I can only ask, "please understand our position
(that needs to handle all *BSDs) and consider a compromise."

> I'm working on
> getting that to you.

Yes, I noticed that, thanks.  I'll take a closer look at it later.

					JINMEI, Tatuya
					Communication Platform Lab.
					Corporate R&D Center, Toshiba Corp.
					jinmei@isl.rdc.toshiba.co.jp

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?y7vbs5u4s5m.wl>