linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Schmidt <s.schmidt@samsung.com>
To: 'Marcel Holtmann' <marcel@holtmann.org>,
	'Alexander Aring' <alex.aring@gmail.com>
Cc: 'BlueZ development' <linux-bluetooth@vger.kernel.org>,
	linux-wpan@vger.kernel.org, kernel@pengutronix.de,
	'Jukka Rissanen' <jukka.rissanen@linux.intel.com>,
	'Martin Townsend' <mtownsend1973@gmail.com>
Subject: Re: [PATCHv4 bluetooth-next 0/3] 6lowpan: introduce nhc framework
Date: Thu, 08 Jan 2015 19:18:57 +0000	[thread overview]
Message-ID: <058601d02b77$f3f47050$dbdd50f0$@samsung.com> (raw)
In-Reply-To: <BD3A316F-B094-419D-B2EC-EF6D980A692A@holtmann.org>

Hello.

On 08/01/15 20:06, Marcel Holtmann wrote:
> Hi Alex,
>
>> This patch series introduce the next header compression framework.
> Currently
>> we support udp compression/uncompression only. This framework allow to
> add new
>> next header compression formats easily.
>>
>> If somebody wants to add a new header compression format and some
> information
>> are missing while calling compression and uncompression callbacks.
> Please
>> feel free to make framework changes according these callbacks.
>>
>> changes since v2:
>> - make udp nhc as module as suggested by Marcel Holtmann
>> - fix comment header in nhc_udp.c
>>
>> I didn't make the lowpan_nhc declaration "const" because this will occur
>> issues with rb_node, id and idmask array. Which will manipulated during
>> runtime.
>>
>> changes since v3:
>> - add patch 3/3 for other known rfc6282 ipv6 extension headers
> compression
>>    formats
>> - add request_modules for loading nhc default compression format
> modules.
>>    Which was suggested by Jukka Rissanen. Thanks, this is really working.
>> - Add rtnl_lock for lowpan_nhc_add and del since we have no synced
>>    request_modules call this could make trouble.
>> - Move some handling out of nhc_do_compression and uncompression
> function.
>>    The complete handling is now inside of iphc.c and nhc_do_compression
> and
>>    uncompression functions is only a wrapper call for the callback.
>> - rework some menuentries for Kconfig and compression format, they are
>>    grouped by rfc now.
>> - move some generic handling like "skb_pull(skb, nhc->nexthdrlen);" into
>>    iphc.c. It would be great if we have something also for uncompression
>>    for the skb_cow. But this isn't possible right now.
>> - change warning if nhc was not found to "was not found" instead isn't
>>    implemented. It isn't implemented if callbacks are NULL now.
>> - small cleanups.
>>
>> changes since v4:
>> - add spinlock for to prevent nhc from deletion while using. This can
> occur
>>    if nhc module is unloading while compression/uncompression.
>> - move nhc handling for nhc compression/uncompression completely into
>>    nhc_do_compression/nhc_do_uncompression.
>>
>> Note about locking:
>>
>> We have now a spinlock nhc_lowpan_lock which prevents manipulating the
> nhc
>> datastructures while using it. On receiving side it's easy to handle, at
> the
>> end we check if 6lowpan nh compressed flag is set and run uncompression.
>> On the other hand the transmit side is complicated, we check if next_hdr
> field
>> is registrated and run some other compression routines, at least we do
> the
>> finally nhc compression which depends on the first check if next_hdr was
>> registrated. The kernel will crash if we remove the using module between
>> "next_hdr check" and "do nhc compression", the lock will prevent that
> now.
>>
>> Now in the transmit path exist a little window to remove a lowpan_nhc
> while
>> compression. This is exactly the part between "check if we support" and
>> "doing compression". This is a very unlikely case, if this occurs we
> drop
>> the packet while compression. Don't know how to better deal with that
> right
>> now. I will try to search a better solution later.
>>
>> Cc: Jukka Rissanen <jukka.rissanen@linux.intel.com>
>> Cc: Martin Townsend <mtownsend1973@gmail.com>
>> Cc: Marcel Holtmann <marcel@holtmann.org>
>>
>> Alexander Aring (3):
>>   6lowpan: add generic nhc layer interface
>>   6lowpan: add udp compression via nhc layer
>>   6lowpan: nhc: add other known rfc6282 compressions
>>
>> net/6lowpan/Kconfig             |  60 +++++++++-
>> net/6lowpan/Makefile            |  13 ++-
>> net/6lowpan/iphc.c              | 200 ++++++---------------------------
>> net/6lowpan/nhc.c               | 241
> ++++++++++++++++++++++++++++++++++++++++
>> net/6lowpan/nhc.h               | 146 ++++++++++++++++++++++++
>> net/6lowpan/nhc_rfc6282_dest.c  |  27 +++++
>> net/6lowpan/nhc_rfc6282_frag.c  |  26 +++++
>> net/6lowpan/nhc_rfc6282_hop.c   |  26 +++++
>> net/6lowpan/nhc_rfc6282_ipv6.c  |  26 +++++
>> net/6lowpan/nhc_rfc6282_mobil.c |  26 +++++
>> net/6lowpan/nhc_rfc6282_route.c |  26 +++++
>> net/6lowpan/nhc_rfc6282_udp.c   | 156 ++++++++++++++++++++++++++
>
> can we please remove the _rfc6282 from the filenames. RFCs get update and
> thus change numbers. I do not want to carry RFC numbers in filenames
> around. There is also almost no precedence in the kernel source code that
> would justify doing this.

They look indeed quite ugly in the filename. :)

Moving them as a comment and starting point into the file should be 
enough. Maybe we can also rename nhc_mobil to nhc_mobility. The other 
abbreviations are clear in my opinion but for mobil I actually opened 
the rfc to look what you mean here.

regards
Stefan Schmidt

  reply	other threads:[~2015-01-08 19:18 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-08 12:31 [PATCHv4 bluetooth-next 0/3] 6lowpan: introduce nhc framework Alexander Aring
2015-01-08 12:31 ` [PATCHv4 bluetooth-next 1/3] 6lowpan: add generic nhc layer interface Alexander Aring
2015-01-08 12:31 ` [PATCHv4 bluetooth-next 2/3] 6lowpan: add udp compression via nhc layer Alexander Aring
2015-01-08 12:31 ` [PATCHv4 bluetooth-next 3/3] 6lowpan: nhc: add other known rfc6282 compressions Alexander Aring
2015-01-08 19:06 ` [PATCHv4 bluetooth-next 0/3] 6lowpan: introduce nhc framework Marcel Holtmann
2015-01-08 19:18   ` Stefan Schmidt [this message]
2015-01-08 20:04     ` Alexander Aring
2015-01-08 20:08       ` Alexander Aring
2015-01-09 13:06         ` Stefan Schmidt
2015-01-08 20:24       ` Alexander Aring
2015-01-09 13:05       ` Stefan Schmidt
2015-01-09 13:55         ` Alexander Aring
2015-01-09 12:21 ` Jukka Rissanen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='058601d02b77$f3f47050$dbdd50f0$@samsung.com' \
    --to=s.schmidt@samsung.com \
    --cc=alex.aring@gmail.com \
    --cc=jukka.rissanen@linux.intel.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-wpan@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=mtownsend1973@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).