2003-03-11 17:53:55

by Wolfgang Heidrich

[permalink] [raw]
Subject: [Bluez-devel] Support for Clock offset event

diff -Naur bluez-kernel-2.3/core/hci_event.c bluez-kernel-2.3-new/core/hci_event.c
--- bluez-kernel-2.3/core/hci_event.c Fri Nov 1 18:48:51 2002
+++ bluez-kernel-2.3-new/core/hci_event.c Tue Mar 11 18:28:31 2003
@@ -711,6 +711,28 @@
hci_dev_unlock(hdev);
}

+/* New clock offset */
+static inline void hci_clock_offset_evt(struct hci_dev *hdev, struct sk_buff *skb)
+{
+ evt_clock_offset *eco=(evt_clock_offset *) skb->data;
+ struct hci_conn *conn = NULL;
+ __u16 handle = __le16_to_cpu(eco->handle);
+ struct inquiry_entry *e;
+
+ BT_DBG("%s status %d", hdev->name, eco->status);
+
+ hci_dev_lock(hdev);
+
+ conn = conn_hash_lookup_handle(hdev, handle);
+ if (conn && (!eco->status) && ( e = inquiry_cache_lookup(hdev, &conn->dst) ) ) {
+ /* update only existing entries, because we only get the clock offset without further information */
+ e->info.clock_offset=eco->offset;
+ e->timestamp = jiffies;
+ }
+
+ hci_dev_unlock(hdev);
+}
+
void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
{
hci_event_hdr *he = (hci_event_hdr *) skb->data;
@@ -757,6 +779,10 @@

case EVT_ENCRYPT_CHANGE:
hci_encrypt_change_evt(hdev, skb);
+ break;
+
+ case EVT_CLOCK_OFFSET:
+ hci_clock_offset_evt(hdev, skb);
break;

case EVT_CMD_STATUS:
diff -Naur bluez-kernel-2.3/include/hci.h bluez-kernel-2.3-new/include/hci.h
--- bluez-kernel-2.3/include/hci.h Fri Nov 1 18:48:51 2002
+++ bluez-kernel-2.3-new/include/hci.h Tue Mar 11 18:30:15 2003
@@ -567,6 +567,14 @@
} __attribute__ ((packed)) evt_link_key_notify;
#define EVT_LINK_KEY_NOTIFY_SIZE 23

+#define EVT_CLOCK_OFFSET 0x1C
+typedef struct {
+ __u8 status;
+ __u16 handle;
+ __u16 offset;
+} __attribute__ ((packed)) evt_clock_offset;
+#define EVT_CLOCK_OFFSET_SIZE 5
+
#define EVT_READ_REMOTE_FEATURES_COMPLETE 0x0B
typedef struct {
__u8 status;


Attachments:
patch_clk_offset (1.80 kB)

2003-03-12 00:15:45

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Support for Clock offset event

Hi Wolfgang,

> I added support for the clock offset event to bluez-kernel. The
> attached patch is very simple and applies cleanly to bluez-kernel-2.3.
> If you like, you can commit it. Then bluez gets one more step more
> complete.
> The clock information in the corresponding
> entry of the inquiry cache is updated in case of a clock offset event.
>
> Clock offset is important for very fast connection establishment.

thanks for the patch. Can you please explain how it should help to get a
fast connection establishment. I have been through the spec. and the
clock offset event will only be generated if you request it with the
read clock offset command. This command requires a connection handle of
an ACL link and if you got the connection handle you will already have a
established connection. So I can't see how this patch will give us any
advantages.

Regards

Marcel




-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel