2011-11-17 04:25:05

by Peter Krystad

[permalink] [raw]
Subject: [PATCH v3 bluez 2/2] Add A2MP definitions

---
lib/a2mp.h | 137
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 137 insertions(+), 0 deletions(-)
create mode 100644 lib/a2mp.h

diff --git a/lib/a2mp.h b/lib/a2mp.h
new file mode 100644
index 0000000..ce4bf53
--- /dev/null
+++ b/lib/a2mp.h
@@ -0,0 +1,137 @@
+/*
+ *
+ * BlueZ - Bluetooth protocol stack for Linux
+ *
+ * Copyright (C) 2010-2011 Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __A2MP_H
+#define __A2MP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* A2MP Protocol */
+
+/* A2MP command codes */
+
+#define A2MP_COMMAND_REJ 0x01
+#define A2MP_DISCOVER_REQ 0x02
+#define A2MP_DISCOVER_RSP 0x03
+#define A2MP_CHANGE_NOTIFY 0x04
+#define A2MP_CHANGE_RSP 0x05
+#define A2MP_INFO_REQ 0x06
+#define A2MP_INFO_RSP 0x07
+#define A2MP_ASSOC_REQ 0x08
+#define A2MP_ASSOC_RSP 0x09
+#define A2MP_CREATE_REQ 0x0a
+#define A2MP_CREATE_RSP 0x0b
+#define A2MP_DISCONN_REQ 0x0c
+#define A2MP_DISCONN_RSP 0x0d
+
+struct a2mp_hdr {
+ uint8_t code;
+ uint8_t ident;
+ uint16_t len;
+} __attribute__ ((packed));
+#define A2MP_HDR_SIZE 4
+
+struct a2mp_command_rej {
+ uint16_t reason;
+} __attribute__ ((packed));
+
+struct a2mp_discover_req {
+ uint16_t mtu;
+ uint16_t mask;
+} __attribute__ ((packed));
+
+struct a2mp_ctrl {
+ uint8_t id;
+ uint8_t type;
+ uint8_t status;
+} __attribute__ ((packed));
+
+struct a2mp_discover_rsp {
+ uint16_t mtu;
+ uint16_t mask;
+ struct a2mp_ctrl ctrl_list[0];
+} __attribute__ ((packed));
+
+struct a2mp_info_req {
+ uint8_t id;
+} __attribute__ ((packed));
+
+struct a2mp_info_rsp {
+ uint8_t id;
+ uint8_t status;
+ uint32_t total_bw;
+ uint32_t max_bw;
+ uint32_t min_latency;
+ uint16_t pal_caps;
+ uint16_t assoc_size;
+} __attribute__ ((packed));
+
+struct a2mp_assoc_rsp {
+ uint8_t id;
+ uint8_t status;
+ uint8_t assoc_data[0];
+} __attribute__ ((packed));
+
+struct a2mp_create_req {
+ uint8_t local_id;
+ uint8_t remote_id;
+ uint8_t assoc_data[0];
+} __attribute__ ((packed));
+
+struct a2mp_create_rsp {
+ uint8_t local_id;
+ uint8_t remote_id;
+ uint8_t status;
+} __attribute__ ((packed));
+
+struct a2mp_disconn_req {
+ uint8_t local_id;
+ uint8_t remote_id;
+} __attribute__ ((packed));
+
+#define A2MP_COMMAND_NOT_RECOGNIZED 0x0000
+
+/* AMP controller type */
+#define AMP_CTRL_BR_EDR 0x00
+#define AMP_CTRL_802_11 0x01
+
+/* AMP controller status */
+#define AMP_CTRL_POWERED_DOWN 0x00
+#define AMP_CTRL_BLUETOOTH_ONLY 0x01
+#define AMP_CTRL_NO_CAPACITY 0x02
+#define AMP_CTRL_LOW_CAPACITY 0x03
+#define AMP_CTRL_MEDIUM_CAPACITY 0x04
+#define AMP_CTRL_HIGH_CAPACITY 0x05
+#define AMP_CTRL_FULL_CAPACITY 0x06
+
+/* A2MP response status */
+#define A2MP_STATUS_SUCCESS 0x00
+#define A2MP_STATUS_INVALID_CTRL_ID 0x01
+#define A2MP_STATUS_UNABLE_START_LINK_CREATION 0x02
+#define A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS 0x02
+#define A2MP_STATUS_COLLISION_OCCURED 0x03
+#define A2MP_STATUS_DISCONN_REQ_RECVD 0x04
+#define A2MP_STATUS_PHYS_LINK_EXISTS 0x05
+#define A2MP_STATUS_SECURITY_VIOLATION 0x06
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __A2MP_H */
--
1.7.7
--
Peter Krystad
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum



2011-11-18 05:15:51

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v3 bluez 2/2] Add A2MP definitions

Hi Johan,

> > +++ b/lib/a2mp.h
> > @@ -0,0 +1,137 @@
> > +/*
> > + *
> > + * BlueZ - Bluetooth protocol stack for Linux
> > + *
> > + * Copyright (C) 2010-2011 Code Aurora Forum. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
>
> I haven't forgotten about these but just been waiting for feedback from
> Marcel about this inconsistent (compared to the rest of the source tree)
> license header that you have (this one is "GPL 2 only" whereas the rest
> (including other files that you add content to) are "GPL 2 or later".

so for userspace we are using "GPLv2 and later" and for kernel we are
using "GPLv2 only". And I prefer to keep it this way. Mainly to keep
myself sane since the BlueZ code is not a small one. So it would be
great if you can just follow the existing license.

Regards

Marcel



2011-11-17 19:05:51

by Peter Krystad

[permalink] [raw]
Subject: RE: [PATCH v3 bluez 2/2] Add A2MP definitions


Hi Andrei,

> > +
> > +/* AMP controller type */
> > +#define AMP_CTRL_BR_EDR 0x00
> > +#define AMP_CTRL_802_11 0x01
>
> Do we need to define those values? Cannot you use already defined ones in
> hci.h?

You're right, I'll remove them.

> in include/net/bluetooth/hci.h and lib/hci.h
> /* HCI controller types */
> #define HCI_BREDR 0x00
> #define HCI_AMP 0x01
>
> Maybe HCI_AMP is not the best way and at some point we might need to
> rename it according to BT Spec assigned numbers (like HCI_AMP_802_11)

Agreed it should be changed to reflect 802.11.

> Otherwise
>
> Acked-by: Andrei Emeltchenko <[email protected]>

Regards,

Peter.

--Peter Krystad
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum



2011-11-17 18:19:20

by Peter Krystad

[permalink] [raw]
Subject: RE: [PATCH v3 bluez 2/2] Add A2MP definitions


> Hi Peter,
>
> On Wed, Nov 16, 2011, Peter Krystad wrote:
> > +++ b/lib/a2mp.h
> > @@ -0,0 +1,137 @@
> > +/*
> > + *
> > + * BlueZ - Bluetooth protocol stack for Linux
> > + *
> > + * Copyright (C) 2010-2011 Code Aurora Forum. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
>
> I haven't forgotten about these but just been waiting for feedback from
> Marcel about this inconsistent (compared to the rest of the source tree)
> license header that you have (this one is "GPL 2 only" whereas the rest
> (including other files that you add content to) are "GPL 2 or later".
>
> Johan

Thanks for the update.

Regards,

Peter.

--Peter Krystad
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum



2011-11-17 09:26:27

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH v3 bluez 2/2] Add A2MP definitions

Hi Peter,

On Wed, Nov 16, 2011, Peter Krystad wrote:
> +++ b/lib/a2mp.h
> @@ -0,0 +1,137 @@
> +/*
> + *
> + * BlueZ - Bluetooth protocol stack for Linux
> + *
> + * Copyright (C) 2010-2011 Code Aurora Forum. All rights reserved.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.

I haven't forgotten about these but just been waiting for feedback from
Marcel about this inconsistent (compared to the rest of the source tree)
license header that you have (this one is "GPL 2 only" whereas the rest
(including other files that you add content to) are "GPL 2 or later".

Johan

2011-11-17 09:45:41

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: [PATCH v3 bluez 2/2] Add A2MP definitions

Hi Peter,

On Wed, Nov 16, 2011 at 08:25:05PM -0800, Peter Krystad wrote:
> ---
> lib/a2mp.h | 137
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 137 insertions(+), 0 deletions(-)
> create mode 100644 lib/a2mp.h
>
> diff --git a/lib/a2mp.h b/lib/a2mp.h
> new file mode 100644
> index 0000000..ce4bf53
> --- /dev/null
> +++ b/lib/a2mp.h
> @@ -0,0 +1,137 @@
> +/*
> + *
> + * BlueZ - Bluetooth protocol stack for Linux
> + *
> + * Copyright (C) 2010-2011 Code Aurora Forum. All rights reserved.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 and
> + * only version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + */
> +
> +#ifndef __A2MP_H
> +#define __A2MP_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/* A2MP Protocol */
> +
> +/* A2MP command codes */
> +
> +#define A2MP_COMMAND_REJ 0x01
> +#define A2MP_DISCOVER_REQ 0x02
> +#define A2MP_DISCOVER_RSP 0x03
> +#define A2MP_CHANGE_NOTIFY 0x04
> +#define A2MP_CHANGE_RSP 0x05
> +#define A2MP_INFO_REQ 0x06
> +#define A2MP_INFO_RSP 0x07
> +#define A2MP_ASSOC_REQ 0x08
> +#define A2MP_ASSOC_RSP 0x09
> +#define A2MP_CREATE_REQ 0x0a
> +#define A2MP_CREATE_RSP 0x0b
> +#define A2MP_DISCONN_REQ 0x0c
> +#define A2MP_DISCONN_RSP 0x0d
> +
> +struct a2mp_hdr {
> + uint8_t code;
> + uint8_t ident;
> + uint16_t len;
> +} __attribute__ ((packed));
> +#define A2MP_HDR_SIZE 4
> +
> +struct a2mp_command_rej {
> + uint16_t reason;
> +} __attribute__ ((packed));
> +
> +struct a2mp_discover_req {
> + uint16_t mtu;
> + uint16_t mask;
> +} __attribute__ ((packed));
> +
> +struct a2mp_ctrl {
> + uint8_t id;
> + uint8_t type;
> + uint8_t status;
> +} __attribute__ ((packed));
> +
> +struct a2mp_discover_rsp {
> + uint16_t mtu;
> + uint16_t mask;
> + struct a2mp_ctrl ctrl_list[0];
> +} __attribute__ ((packed));
> +
> +struct a2mp_info_req {
> + uint8_t id;
> +} __attribute__ ((packed));
> +
> +struct a2mp_info_rsp {
> + uint8_t id;
> + uint8_t status;
> + uint32_t total_bw;
> + uint32_t max_bw;
> + uint32_t min_latency;
> + uint16_t pal_caps;
> + uint16_t assoc_size;
> +} __attribute__ ((packed));
> +
> +struct a2mp_assoc_rsp {
> + uint8_t id;
> + uint8_t status;
> + uint8_t assoc_data[0];
> +} __attribute__ ((packed));
> +
> +struct a2mp_create_req {
> + uint8_t local_id;
> + uint8_t remote_id;
> + uint8_t assoc_data[0];
> +} __attribute__ ((packed));
> +
> +struct a2mp_create_rsp {
> + uint8_t local_id;
> + uint8_t remote_id;
> + uint8_t status;
> +} __attribute__ ((packed));
> +
> +struct a2mp_disconn_req {
> + uint8_t local_id;
> + uint8_t remote_id;
> +} __attribute__ ((packed));
> +
> +#define A2MP_COMMAND_NOT_RECOGNIZED 0x0000
> +
> +/* AMP controller type */
> +#define AMP_CTRL_BR_EDR 0x00
> +#define AMP_CTRL_802_11 0x01

Do we need to define those values? Cannot you use already defined ones in
hci.h?

in include/net/bluetooth/hci.h and lib/hci.h
/* HCI controller types */
#define HCI_BREDR 0x00
#define HCI_AMP 0x01

Maybe HCI_AMP is not the best way and at some point we might need to
rename it according to BT Spec assigned numbers (like HCI_AMP_802_11)


Otherwise

Acked-by: Andrei Emeltchenko <[email protected]>

Best regards
Andrei Emeltchenko


> +/* AMP controller status */
> +#define AMP_CTRL_POWERED_DOWN 0x00
> +#define AMP_CTRL_BLUETOOTH_ONLY 0x01
> +#define AMP_CTRL_NO_CAPACITY 0x02
> +#define AMP_CTRL_LOW_CAPACITY 0x03
> +#define AMP_CTRL_MEDIUM_CAPACITY 0x04
> +#define AMP_CTRL_HIGH_CAPACITY 0x05
> +#define AMP_CTRL_FULL_CAPACITY 0x06
> +
> +/* A2MP response status */
> +#define A2MP_STATUS_SUCCESS 0x00
> +#define A2MP_STATUS_INVALID_CTRL_ID 0x01
> +#define A2MP_STATUS_UNABLE_START_LINK_CREATION 0x02
> +#define A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS 0x02
> +#define A2MP_STATUS_COLLISION_OCCURED 0x03
> +#define A2MP_STATUS_DISCONN_REQ_RECVD 0x04
> +#define A2MP_STATUS_PHYS_LINK_EXISTS 0x05
> +#define A2MP_STATUS_SECURITY_VIOLATION 0x06
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __A2MP_H */
> --
> 1.7.7
> --
> Peter Krystad
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2011-12-13 01:01:52

by Peter Krystad

[permalink] [raw]
Subject: RE: [PATCH v3 bluez 2/2] Add A2MP definitions

Hi Johan (and Andrei),

Sorry for the delay, I had to wait for an answer to a question.

The answer is I really can only submit new files with the exact license text in my
original patchset.

Per Andrei's suggestion I will submit revised patchsets with all of the A2MP definitions
added to the existing l2cap.h.

Peter.

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Johan Hedberg
> Hi Peter,
>
> On Wed, Nov 02, 2011, Peter Krystad wrote:
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
>
> I'm still waiting for an update from you on this licensing detail issue.
> As Marcel said we'd like to keep the license terms of all libbluetooth
> (and also bluez user-space for that matter) consistent. Since you're
> already contributing code under "GPL v2 or later" (for the existing .c
> and .h files) would it be possible for you to use that for all parts of
> your patches?
>
> Johan

--Peter Krystad
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum




2011-12-12 12:28:09

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: [PATCH v3 bluez 2/2] Add A2MP definitions

On Mon, Dec 12, 2011 at 12:42:57PM +0200, Johan Hedberg wrote:
> Hi Peter,
>
> On Wed, Nov 02, 2011, Peter Krystad wrote:
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 and
> > + * only version 2 as published by the Free Software Foundation.
>
> I'm still waiting for an update from you on this licensing detail issue.
> As Marcel said we'd like to keep the license terms of all libbluetooth
> (and also bluez user-space for that matter) consistent. Since you're
> already contributing code under "GPL v2 or later" (for the existing .c
> and .h files) would it be possible for you to use that for all parts of
> your patches?

The easy fix: do not create new header with license and move definitions
to the existing header.

Best regards
Andrei Emeltchenko