You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by 安超 <an...@xiaomi.com.INVALID> on 2020/08/26 16:40:54 UTC

答复: 答复: [External Mail]Re: defining a BLE GATT server

Mr.Greg, I really don't understand why you are so angry, and there are so many verbal attacks.
I just share a feasibility. What I expect is discussion and respect, not devaluation. If you don't like it, just say it like others.

BRs,

________________________________________
发件人: Gregory Nutt <sp...@gmail.com>
发送时间: 2020年8月27日 0:30
收件人: dev@nuttx.apache.org
主题: Re: 答复: [External Mail]Re: defining a BLE GATT server

> What you should do is to coordinate and and cooperate with the NuttX
> team to get help from the community.  If you chose to go your own way
> and not discussion or cooperation with the team, then you are on your
> own.  That code will not come into the repository.
>
> If you want to do things correctly and get the benefit of community
> support then you need to communicate, conform, and cooperate.  You
> help would be appreciated.  The current direction you are taking is
> NOT appreciated and is a waste of your time in the long run.  It will
> not be adopted.  I will never come into the repositories.  It will
> never be supported or used by anyone other than Xiaomi.
>
> If you want the benefit of working in an open source project, be part
> of the team and follow the project architecture and roadmap. Taking
> you own rogue direction isolates you.  You will fail in the direction
> you are taking.

Imagine what we could accomplish if we worked together instead you
taking off unilaterally on your own unacceptable, bullshit direction!
We could do a lot which such a terrible solution.  We could implement
the roadmap.  We could maintain Linux compatible. We could be the world
class implementation, not some sleazy little sneaks illicit Zephyr code
into the code base and then uses it is a moronic, incompatible way.

What you are doing is very bad and would be a disaster for the OS.  We
have to resist this in all ways that we are able to.

Of course, if Xiaomi likes this shitty architecture and back-door access
to Zephyr code, go ahead.  Just don't degrade the NuttX project with
this garbage.  We won't permit that.

#/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail and its attachments contain confidential information from XIAOMI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!******/#

Re: 答复: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Gregory Nutt <sp...@gmail.com>.
> Let me clarify one thing: The approach we take is a pure userspace solution, it isn't related to NuttX kernel and no plan to upstream it.
That is good to know. Thank you.  I will sleep better tonight.
> The major difference is where to put L2CAP/HCI code(userspace v.s. kernelspace) and it isn't too hard to migrate to socket interface once the NuttX kernel has the full and stable L2CAP/HCI support.
> My question is how to finish the Bluetooth stack on the userspace? It will be a huge work to write from scratch(BT, BLE, BLE mesh and BLE Audio).

Since NuttX does not support a user-space Bluetooth stack, I will leave 
this up to your internal implementation.

I think that Xiaomi is missing a tremendous opportunity.  The reason 
that most corporations get involved with open source projects is to 
benefit from the open source support from the community.  But it always 
seems the Xiaomi goes their own way and implements things all on their 
own without discussing with the community.  That is Xiaomi's loss.  You 
are losing the power and strength of the open source project.

If you, Chao An, I, Brennan, Matias, and others all worked together with 
a common goal and under common architectural principles, I think that we 
could accomplish a lot.  Much more than Xiaomi could accomplish by 
themselves.  But that requires, planning, discussion, agreement, and 
conformance to a common architecture and roadmap.

Yes Bluetooth is a big job.  It is a lot for one person.  But if we 
share the project as a true open source project, we can do most 
anything.  There is a lot a strength and talent on this project that you 
are ignoring.

For example, I offered to implement the Bluetooth protocol sockets this 
morning (my time).  Matias is considering a Gatt server.


RE: 答复: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Xiang Xiao <xi...@gmail.com>.
Let me clarify one thing: The approach we take is a pure userspace solution, it isn't related to NuttX kernel and no plan to upstream it.
The major difference is where to put L2CAP/HCI code(userspace v.s. kernelspace) and it isn't too hard to migrate to socket interface once the NuttX kernel has the full and stable L2CAP/HCI support.
My question is how to finish the Bluetooth stack on the userspace? It will be a huge work to write from scratch(BT, BLE, BLE mesh and BLE Audio).

> -----Original Message-----
> From: Gregory Nutt <sp...@gmail.com>
> Sent: Thursday, August 27, 2020 12:46 AM
> To: dev@nuttx.apache.org
> Subject: Re: 答复: 答复: [External Mail]Re: defining a BLE GATT server
> 
> 
> > Mr.Greg, I really don't understand why you are so angry, and there are so many verbal attacks.
> > I just share a feasibility. What I expect is discussion and respect, not devaluation. If you don't like it, just say it like others.
> 
> Yes, I am angry.  I am very pissed off that you completely ignored the NuttX architectural roadmap and chose to go your own
> direction.  That is offensive (as well as stupid).  And I do not want to work with people who cannot work together for common
> architectural goals.  The direction you are taking is not going to lead to friendship or cooperation.
> 
> Attempts like these to destroy the NuttX architecture will always piss me off.  I have a lot invested in this OS and some ignorant
> engineer who ignores that legacy is going make me angry.  You would ruin this OS!
> 
> You must keep these changes within Xaiomi because they will not be permitted upstream.
> 



Re: 答复: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Gregory Nutt <sp...@gmail.com>.
> Mr.Greg, I really don't understand why you are so angry, and there are so many verbal attacks.
> I just share a feasibility. What I expect is discussion and respect, not devaluation. If you don't like it, just say it like others.

Yes, I am angry.  I am very pissed off that you completely ignored the 
NuttX architectural roadmap and chose to go your own direction.  That is 
offensive (as well as stupid).  And I do not want to work with people 
who cannot work together for common architectural goals.  The direction 
you are taking is not going to lead to friendship or cooperation.

Attempts like these to destroy the NuttX architecture will always piss 
me off.  I have a lot invested in this OS and some ignorant engineer who 
ignores that legacy is going make me angry.  You would ruin this OS!

You must keep these changes within Xaiomi because they will not be 
permitted upstream.



答复: 答复: [External Mail]Re: defining a BLE GATT server

Posted by 安超 <an...@xiaomi.com.INVALID>.
Hi Greg, Brennan

Okay, it is enough, I think we have all spent enough time discussing this issue!

I agree that this change will not be upstream, Xiaomi will not give up NuttX's Roadmap, which is also Xiang's long-cherished wish.
I will abandon later, Thanks for your precious time.

BRs,

________________________________________
发件人: Brennan Ashton <ba...@brennanashton.com>
发送时间: 2020年8月27日 1:01
收件人: dev@nuttx.apache.org
主题: Re: 答复: [External Mail]Re: defining a BLE GATT server

On Wed, Aug 26, 2020 at 9:56 AM Gregory Nutt <sp...@gmail.com> wrote:
> > Lets try to see how we can move this forward, I'm not fully sure I
> > fully understand the implications of what you were saying about the
> > packet protocol, but I think it is best that we focus the discussion
> > on that in the GitHub issue that I opened about the HCI socket.  I can
> > share what I know about the BlueZ interface there with some client
> > examples as appropriate.
> >
> > I'm sure we can find ways to bridge the gap here especially on the
> > application side.
>
> I still would not accept any such change in the OS.  And, if merged, I
> would feel compelled to revert the commits.

I'm agreeing with you Greg, anything that comes into Apps or the OS
must use the socket API.

All I am saying is there are applications like dumping the HCI log
that really just pretty print the packets. It does not care if it came
via a socket or something else.  As long as it uses the NuttX API
there is no reason to build it twice.

--Brennan
#/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail and its attachments contain confidential information from XIAOMI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!******/#

Re: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Gregory Nutt <sp...@gmail.com>.
> I'm agreeing with you Greg, anything that comes into Apps or the OS
> must use the socket API.

Then we are in agreement.  I am a mother hen and will defend the OS 
architecture to the teeth (hmm.. hens.. teeth... sorry about the mixed 
metaphor).

I don't get involved in most code changes.  I only turn into the Hulk 
when the architecture is threatened.

> All I am saying is there are applications like dumping the HCI log
> that really just pretty print the packets. It does not care if it came
> via a socket or something else.  As long as it uses the NuttX API
> there is no reason to build it twice.

IEEE802.14.5 has both a character driver interface and a network driver 
interface.  But it is awkward and Anthony Merlino has recommended not 
doing this in the future.  Anthony intended to remove the character 
driver interface before he got distracted. There is nothing that you can 
do with a character driver that cannot be done with raw socket and, in 
most cases, there is not a substantial difference in performance (there 
is more complexity, but not necessary performance overhead).  So there 
is really no functional need for the character driver interfaces.

Having both is also undesirable because it makes routing of received 
frames complex.  Do they go to the network or to the character driver?  
So I don't think having a sneak character driver interface should be 
incorporated either.

I suppose having a socket tapped into the HCI layer has the same routing 
issues.

Then we agree that there is only one Bluetooth stack and it is accessed 
by via the network.  It is better not to have some interim character 
driver solution because that might get usage and once it has been 
established, it becomes nearly impossible to remove.  We can only allow 
final implementations utilizing the network interface into the 
repositories.  Interim solutions need to wait until they mature outside 
of the repositories.

What I will resist is having two Bluetooth stacks:  The existing one and 
one that is just a secret backdoor for getting third party Zephyr code 
into the OS without following ASF rules and uses a character driver 
interface.  It is the latter than I am opposed to.



Re: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Brennan Ashton <ba...@brennanashton.com>.
On Wed, Aug 26, 2020 at 9:56 AM Gregory Nutt <sp...@gmail.com> wrote:
> > Lets try to see how we can move this forward, I'm not fully sure I
> > fully understand the implications of what you were saying about the
> > packet protocol, but I think it is best that we focus the discussion
> > on that in the GitHub issue that I opened about the HCI socket.  I can
> > share what I know about the BlueZ interface there with some client
> > examples as appropriate.
> >
> > I'm sure we can find ways to bridge the gap here especially on the
> > application side.
>
> I still would not accept any such change in the OS.  And, if merged, I
> would feel compelled to revert the commits.

I'm agreeing with you Greg, anything that comes into Apps or the OS
must use the socket API.

All I am saying is there are applications like dumping the HCI log
that really just pretty print the packets. It does not care if it came
via a socket or something else.  As long as it uses the NuttX API
there is no reason to build it twice.

--Brennan

Re: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Gregory Nutt <sp...@gmail.com>.
On 8/26/2020 10:56 AM, Gregory Nutt wrote:
>
>> Lets bring this back to a constructive place.
>>
>> An Chao I really appreciate the detailed information that you wrote,
>> while I don't think it will be appropriate to include directly
>> upstream it is still valuable to know how you are trying to use this
>> and it helps us make an informed decision moving forward.  I think we
>> are going to take more of the BlueZ path forward but I suspect there
>> are ways to allow your internal works to sit nicely on top of that
>> without compromising what we are building here.  You see this even in
>> the Linux Kernel where for very specific use cases companies will
>> implement parts of a network stack in user space.
>>
>> Greg I fully understand where you stand and your frustration, you have
>> put a significant part of your life into this project and want to see
>> it grow and not erode.  In this case I think you have multiple people
>> on the team who are also saying thanks, but lets make sure we are
>> doing this correctly and not taking shortcuts.
>>
>> Lets try to see how we can move this forward, I'm not fully sure I
>> fully understand the implications of what you were saying about the
>> packet protocol, but I think it is best that we focus the discussion
>> on that in the GitHub issue that I opened about the HCI socket. I can
>> share what I know about the BlueZ interface there with some client
>> examples as appropriate.
>>
>> I'm sure we can find ways to bridge the gap here especially on the
>> application side.
>
> I still would not accept any such change in the OS.  And, if merged, I 
> would feel compelled to revert the commits.
>
I am not open to violating the architectural principles of the OS. There 
is no room for compromise on this topic.



Re: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Gregory Nutt <sp...@gmail.com>.
> Lets bring this back to a constructive place.
>
> An Chao I really appreciate the detailed information that you wrote,
> while I don't think it will be appropriate to include directly
> upstream it is still valuable to know how you are trying to use this
> and it helps us make an informed decision moving forward.  I think we
> are going to take more of the BlueZ path forward but I suspect there
> are ways to allow your internal works to sit nicely on top of that
> without compromising what we are building here.  You see this even in
> the Linux Kernel where for very specific use cases companies will
> implement parts of a network stack in user space.
>
> Greg I fully understand where you stand and your frustration, you have
> put a significant part of your life into this project and want to see
> it grow and not erode.  In this case I think you have multiple people
> on the team who are also saying thanks, but lets make sure we are
> doing this correctly and not taking shortcuts.
>
> Lets try to see how we can move this forward, I'm not fully sure I
> fully understand the implications of what you were saying about the
> packet protocol, but I think it is best that we focus the discussion
> on that in the GitHub issue that I opened about the HCI socket.  I can
> share what I know about the BlueZ interface there with some client
> examples as appropriate.
>
> I'm sure we can find ways to bridge the gap here especially on the
> application side.

I still would not accept any such change in the OS.  And, if merged, I 
would feel compelled to revert the commits.



Re: 答复: [External Mail]Re: defining a BLE GATT server

Posted by Brennan Ashton <ba...@brennanashton.com>.
Lets bring this back to a constructive place.

An Chao I really appreciate the detailed information that you wrote,
while I don't think it will be appropriate to include directly
upstream it is still valuable to know how you are trying to use this
and it helps us make an informed decision moving forward.  I think we
are going to take more of the BlueZ path forward but I suspect there
are ways to allow your internal works to sit nicely on top of that
without compromising what we are building here.  You see this even in
the Linux Kernel where for very specific use cases companies will
implement parts of a network stack in user space.

Greg I fully understand where you stand and your frustration, you have
put a significant part of your life into this project and want to see
it grow and not erode.  In this case I think you have multiple people
on the team who are also saying thanks, but lets make sure we are
doing this correctly and not taking shortcuts.

Lets try to see how we can move this forward, I'm not fully sure I
fully understand the implications of what you were saying about the
packet protocol, but I think it is best that we focus the discussion
on that in the GitHub issue that I opened about the HCI socket.  I can
share what I know about the BlueZ interface there with some client
examples as appropriate.

I'm sure we can find ways to bridge the gap here especially on the
application side.

--Brenna

On Wed, Aug 26, 2020 at 9:41 AM 安超 <an...@xiaomi.com.invalid> wrote:
>
> Mr.Greg, I really don't understand why you are so angry, and there are so many verbal attacks.
> I just share a feasibility. What I expect is discussion and respect, not devaluation. If you don't like it, just say it like others.
>
> BRs,
>
> ________________________________________
> 发件人: Gregory Nutt <sp...@gmail.com>
> 发送时间: 2020年8月27日 0:30
> 收件人: dev@nuttx.apache.org
> 主题: Re: 答复: [External Mail]Re: defining a BLE GATT server
>
> > What you should do is to coordinate and and cooperate with the NuttX
> > team to get help from the community.  If you chose to go your own way
> > and not discussion or cooperation with the team, then you are on your
> > own.  That code will not come into the repository.
> >
> > If you want to do things correctly and get the benefit of community
> > support then you need to communicate, conform, and cooperate.  You
> > help would be appreciated.  The current direction you are taking is
> > NOT appreciated and is a waste of your time in the long run.  It will
> > not be adopted.  I will never come into the repositories.  It will
> > never be supported or used by anyone other than Xiaomi.
> >
> > If you want the benefit of working in an open source project, be part
> > of the team and follow the project architecture and roadmap. Taking
> > you own rogue direction isolates you.  You will fail in the direction
> > you are taking.
>
> Imagine what we could accomplish if we worked together instead you
> taking off unilaterally on your own unacceptable, bullshit direction!
> We could do a lot which such a terrible solution.  We could implement
> the roadmap.  We could maintain Linux compatible. We could be the world
> class implementation, not some sleazy little sneaks illicit Zephyr code
> into the code base and then uses it is a moronic, incompatible way.
>
> What you are doing is very bad and would be a disaster for the OS.  We
> have to resist this in all ways that we are able to.
>
> Of course, if Xiaomi likes this shitty architecture and back-door access
> to Zephyr code, go ahead.  Just don't degrade the NuttX project with
> this garbage.  We won't permit that.
>
> #/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail and its attachments contain confidential information from XIAOMI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!******/#