PANU service search
Hi,
The sdptool doesn't provide search for PANU service. Is there plans for implement this?
A PANU device can be started with the following command:
pand --listen --role PANU
This scenario can be usefull when there are a lot of servers and a client device works as a GN connecting these servers. eg: UPnP applications.
Claudio.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
Marcel Holtmann
maintainerHi Claudio,
Quoted 2 lines
The sdptool doesn't provide search for PANU service. Is there plans for implement this?
you can do it by "sdptool search --bdaddr <bdaddr> 0x1115".
Quoted 5 lines
A PANU device can be started with the following command:
pand --listen --role PANUThis scenario can be usefull when there are a lot of servers and a client device works as a GN connecting these servers. eg: UPnP applications.
The pand client can search for PANU by itself and I don't see any real use for it. However send in a patch for it.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Marcel,
Suppose an UPnP application where a control point(role GN controller) needs search for
services in several servers. The control point is the active member and it will search for other devices. It must be the GN controller because sometimes foward packet is required.
The UPnP search takes few seconds therefore connect and search for UPnP service on each server is unacceptable.
Someone can suggest use a search for UPnP service at bluetooth SDP level, searching only devices that provide UPnP service. It solve the problem for ad hoc
networks, but can't solve in network access point scenario. This is the reason for establish the PAN and after use the UPnP search.
Regards,
Claudio.
Quoted 20 lines · Marcel Holtmann
Hi Claudio,
Quoted 2 lines
The sdptool doesn't provide search for PANU service. Is there plans for implement this?
you can do it by "sdptool search --bdaddr <bdaddr>
0x1115".Quoted 5 lines
A PANU device can be started with the following command:
pand --listen --role PANUThis scenario can be usefull when there are a lot of servers and a client device works as a GN connecting these servers. eg: UPnP applications.
The pand client can search for PANU by itself and I don't see any real use for it. However send in a patch for it.
Regards
Marcel
Quoted 10 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Marcel Holtmann
maintainerHi Claudio,
Quoted 6 lines
Suppose an UPnP application where a control point(role GN controller) needs search for
services in several servers. The control point is the active member and it will search for other devices. It must be the GN controller because sometimes foward packet is required.
Quoted 8 lines
The UPnP search takes few seconds therefore connect and search for UPnP service on each server is unacceptable.
Someone can suggest use a search for UPnP service at bluetooth SDP level, searching only devices that provide UPnP service. It solve the problem for ad hoc
networks, but can't solve in network access point scenario. This is the reason for establish the PAN and after use the UPnP search.
I have no idea what you are talking about. You need to create a low level ACL link to do SDP searching, or create the BNEP connection or whatever. This is the time consuming (and blocking) action. So if you want to establish a PAN first and then do UPnP over TCP/IP that is fine. I don't see your problem.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Marcel,
I will try explain my problem more deeply.
Bluetooth Extended Service Discovery Profile (ESDP) for Universal Plug and Play(UPnP)
defines how devices with Bluetooth wireless communications can use the Bluetooth
Service Discovery Protocol (SDP) initially to discover other devices that support UPnP
services and retrieve information about these services.
For more details see http://www.bluetooth.org document: ESDP_for_UPnP_V0.95.pdf
According with this profile three approach can be implemented:
1. L2CAP -based Solution: focus on layering UPnP services over the L2CAP layer of the Bluetooth protocol stack for use by devices that lack IP support.
2. IP-based Solution using PAN Profile: focus on layering UPnP services over the Bluetooth Personal Area Networking (PAN) Profile.
3. IP-based Solution using LAN Access Profile : focus on layering UPnP services over the Bluetooth Local Area Network (LAN) Access Profile.
I choose the SECOND because I have to address ad hoc and NAP scenarios. The 3th option doesn't support multiple connections. The first option is not feasible for me
because a UPnP service can be available in a server that belong to a LAN. Therefore,
using L2CAP -based Solution I will not be able to search UPnP service in a device
that doesn't belongs directly to the PAN.
After select the SECOND approach two scenarios exist:
- Ad Hoc scenario
The Control Point* device(role GN) will establish a PAN with PANUs
devices(listen enabled), assign IP to the nodes and after search for UPnP services. The Control Point is the active member, it search for other devices and must foward packet to all devices that belongs to the PAN.
- NAP scenario
If a NAP(listen enabled) is available, the Control Point(role PANU)
will connect to
the NAP and search for UPnP service in the LAN
I implemented the search for PANU service and tested. Now, what is the procedure to
submit a new patch. I am not sure if this small enhancement can be usefull for the
bluez community.
Regards,
Claudio.
* A control point initiates discovery and communication with UPnP devices, and receives events from UPnP devices.
Quoted 27 lines · Marcel Holtmann
Hi Claudio,
Quoted 6 lines
Suppose an UPnP application where a control point(role GN controller) needs search for
services in several servers. The control point is the active member and it will search for other devices. It must be the GN controller because sometimes foward packet is required.Quoted 8 lines
The UPnP search takes few seconds therefore connect and search for UPnP service on each server is unacceptable.
Someone can suggest use a search for UPnP service at bluetooth SDP level, searching only devices that provide UPnP service. It solve the problem for ad hoc
networks, but can't solve in network access point scenario. This is the reason for establish the PAN and after use the UPnP search.I have no idea what you are talking about. You need to create a low level ACL link to do SDP searching, or create the BNEP connection or whatever. This is the time consuming (and blocking) action. So if you want to establish a PAN first and then do UPnP over TCP/IP that is fine. I don't see your problem.
Regards
Marcel
Quoted 10 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Marcel Holtmann
maintainerHi Claudio,
Quoted 37 lines
I will try explain my problem more deeply.
Bluetooth Extended Service Discovery Profile (ESDP) for Universal Plug and Play(UPnP)
defines how devices with Bluetooth wireless communications can use the Bluetooth
Service Discovery Protocol (SDP) initially to discover other devices that support UPnP
services and retrieve information about these services.
For more details see http://www.bluetooth.org document: ESDP_for_UPnP_V0.95.pdfAccording with this profile three approach can be implemented:
1. L2CAP -based Solution: focus on layering UPnP services over the L2CAP layer of the Bluetooth protocol stack for use by devices that lack IP support.
2. IP-based Solution using PAN Profile: focus on layering UPnP services over the Bluetooth Personal Area Networking (PAN) Profile.
3. IP-based Solution using LAN Access Profile : focus on layering UPnP services over the Bluetooth Local Area Network (LAN) Access Profile.I choose the SECOND because I have to address ad hoc and NAP scenarios. The 3th option doesn't support multiple connections. The first option is not feasible for me
because a UPnP service can be available in a server that belong to a LAN. Therefore,
using L2CAP -based Solution I will not be able to search UPnP service in a device
that doesn't belongs directly to the PAN.After select the SECOND approach two scenarios exist:
- Ad Hoc scenario
The Control Point* device(role GN) will establish a PAN with PANUs
devices(listen enabled), assign IP to the nodes and after search for UPnP services. The Control Point is the active member, it search for other devices and must foward packet to all devices that belongs to the PAN.
Quoted 4 lines
- NAP scenario
If a NAP(listen enabled) is available, the Control Point(role PANU)
will connect to
the NAP and search for UPnP service in the LAN
and I still don't see your problem here. Everything is available for doing this.
Quoted 5 lines
I implemented the search for PANU service and tested. Now, what is the procedure to
submit a new patch. I am not sure if this small enhancement can be usefull for the
bluez community.
Create a patch and post it to the bluez-devel mailing list.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Marcel,
The code for support search for PANU service is attached. The change is very small
but will help me create a PAN for UPnP application in ad hoc scenario.
Regards,
Claudio.
Quoted 59 lines · Marcel Holtmann
Hi Claudio,
Quoted 37 lines
I will try explain my problem more deeply.
Bluetooth Extended Service Discovery Profile (ESDP) for Universal Plug and Play(UPnP)
defines how devices with Bluetooth wireless communications can use the Bluetooth
Service Discovery Protocol (SDP) initially to discover other devices that support UPnP
services and retrieve information about these services.
For more details see http://www.bluetooth.org document: ESDP_for_UPnP_V0.95.pdfAccording with this profile three approach can be implemented:
1. L2CAP -based Solution: focus on layering UPnP services over the L2CAP layer of the Bluetooth protocol stack for use by devices that lack IP support.
2. IP-based Solution using PAN Profile: focus on layering UPnP services over the Bluetooth Personal Area Networking (PAN) Profile.
3. IP-based Solution using LAN Access Profile : focus on layering UPnP services over the Bluetooth Local Area Network (LAN) Access Profile.I choose the SECOND because I have to address ad hoc and NAP scenarios. The 3th option doesn't support multiple connections. The first option is not feasible for me
because a UPnP service can be available in a server that belong to a LAN. Therefore,
using L2CAP -based Solution I will not be able to search UPnP service in a device
that doesn't belongs directly to the PAN.After select the SECOND approach two scenarios exist:
- Ad Hoc scenario
The Control Point* device(role GN) will establish a PAN with PANUs
devices(listen enabled), assign IP to the nodes and after search for UPnP services. The Control Point is the active member, it search for other devices and must foward packet to all devices that belongs to the PAN.Quoted 4 lines
- NAP scenario
If a NAP(listen enabled) is available, the Control Point(role PANU)
will connect to
the NAP and search for UPnP service in the LANand I still don't see your problem here. Everything is available for doing this.
Quoted 5 lines
I implemented the search for PANU service and tested. Now, what is the procedure to
submit a new patch. I am not sure if this small enhancement can be usefull for the
bluez community.Create a patch and post it to the bluez-devel mailing list.
Regards
Marcel
Quoted 10 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
tools/sdptool.c +64 -0
@@ -1599,6 +1599,69 @@return ret; } + +static int add_panu (sdp_session_t *session,svc_info_t *si) +{ +sdp_list_t *svclass_id, *pfseq, *apseq, *root; +uuid_t root_uuid, ftrn_uuid, l2cap_uuid, bnep_uuid; +sdp_profile_desc_t profile[1 ]; +sdp_list_t *aproto, *proto[2 ]; +sdp_record_t record; +uint16_t lp =0x000f , ver =0x0100 ; +sdp_data_t *psm, *version; +int ret =0 ; + +memset ((void *)&record,0 ,sizeof (sdp_record_t)); + record.handle =0xffffffff ; +sdp_uuid16_create (&root_uuid,PUBLIC_BROWSE_GROUP ); + root =sdp_list_append (NULL , &root_uuid); +sdp_set_browse_groups (&record, root); +sdp_list_free (root,NULL ); + +sdp_uuid16_create (&ftrn_uuid,PANU_SVCLASS_ID ); + svclass_id =sdp_list_append (NULL , &ftrn_uuid); +sdp_set_service_classes (&record, svclass_id); +sdp_list_free (svclass_id,NULL ); + +sdp_uuid16_create (&profile[0 ].uuid,PANU_PROFILE_ID ); + profile[0 ].version =0x0100 ; + pfseq =sdp_list_append (NULL , &profile[0 ]); +sdp_set_profile_descs (&record, pfseq); +sdp_list_free (pfseq,NULL ); + +sdp_uuid16_create (&l2cap_uuid,L2CAP_UUID ); + proto[0 ] =sdp_list_append (NULL , &l2cap_uuid); + psm =sdp_data_alloc (SDP_UINT16 , &lp); + proto[0 ] =sdp_list_append (proto[0 ], psm); + apseq =sdp_list_append (NULL , proto[0 ]); + +sdp_uuid16_create (&bnep_uuid,BNEP_UUID ); + proto[1 ] =sdp_list_append (NULL , &bnep_uuid); + version =sdp_data_alloc (SDP_UINT16 , &ver); + proto[1 ] =sdp_list_append (proto[1 ], version); + apseq =sdp_list_append (apseq, proto[1 ]); + + aproto =sdp_list_append (NULL , apseq); +sdp_set_access_protos (&record, aproto); + +sdp_set_info_attr (&record,"PAN User" ,NULL ,NULL ); + +if (sdp_record_register (session, &record,SDP_RECORD_PERSIST ) <0 ) { +printf ("Service Record registration failed\n" ); + ret =-1 ; + goto end; + } +printf ("PANU service registered\n" ); +end: +sdp_data_free (version); +sdp_data_free (psm); +sdp_list_free (proto[0 ],0 ); +sdp_list_free (proto[1 ],0 ); +sdp_list_free (apseq,0 ); +sdp_list_free (aproto,0 ); +return ret; +} +static int add_ctp (sdp_session_t *session,svc_info_t *si) {sdp_list_t *svclass_id, *pfseq, *apseq, *root;
@@ -1793,6 +1856,7 @@ { "NAP", NAP_SVCLASS_ID, add_nap }, { "GN", GN_SVCLASS_ID, add_gn }, + { "PANU", PANU_SVCLASS_ID, add_panu }, { "HID", HID_SVCLASS_ID, NULL }, { "CIP", CIP_SVCLASS_ID, NULL },
Marcel Holtmann
maintainerHi Claudio,
Quoted 3 lines
The code for support search for PANU service is attached. The change is very small
but will help me create a PAN for UPnP application in ad hoc scenario.
I applied the patch to the CVS, but I still don't get why you needed it in the first place. The pand application is able to register the PANU service record and search for it by itself.
Regards
Marcel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Marcel,
Sorry, I forgot clarify one point. I added the function "add_panu" just for convenience.
Search for PANU service is just a small part of my project, I need solve a lot bluetooth issues to provide a seamless connectivity for UPnP applications.
I agree that the function "add_panu" is unncessary if we consider that this service is
provided by pand daemon (pand --listen --role PANU) Therefore, another approach is
add "NULL" instead of "add_panu" in the service structure. The patch for this approach
is attached. Be aware that "sdptool add panu" will run but nothing will be exported.
The structure "service" is common for add and search features.
I have 3 years of experience with mobile application for cell phones, but this is my
first open source development. Sorry for the large amount of emails, but understand
all bluez features is hard task.
Please forgot my last email. When my research became more advanced/clear I will contact you again for support.
Regards,
Claudio.
________________________________________
Claudio Takahasi
INdT - Nokia Technology Institute
Phone: +55 81 21223034
Recife - Pernambuco - Brazil
Quoted 14 lines · Marcel Holtmann
Hi Claudio,
Quoted 3 lines
The code for support search for PANU service is attached. The change is very small
but will help me create a PAN for UPnP application in ad hoc scenario.I applied the patch to the CVS, but I still don't get why you needed it in the first place. The pand application is able to register the PANU service record and search for it by itself.
Regards
Marcel
Quoted 10 lines
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
tools/sdptool.c +0 -1
@@ -1793,7 +1793,6 @@ { "NAP", NAP_SVCLASS_ID, add_nap }, { "GN", GN_SVCLASS_ID, add_gn }, - { "PANU", PANU_SVCLASS_ID, NULL }, { "HID", HID_SVCLASS_ID, NULL }, { "CIP", CIP_SVCLASS_ID, NULL },