RE: Issue Write Not Permitted Error Response not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Hi Ankur,
> 
> > Hello Folks,
> >
> > After implementing and running the test case for Characteristics Write
> > Not Permitted Response (TC_GAW_SR_BI_15_C), it failed. Following the
> > Trace, I found that Bluez (Controller) Sends ATT "Error Response:
> > Write not Permitted"  after receiving "Execute Write Request" from
> > Host instead of sending the "Error Response" after receiving "Prepare
> > Write Request" from Host.
> >
> > Current ATT Message Exchange (Host <> Controller)
> >  ----------------------------------------------------
> > Frame#41(H->C): Prepare Write Request
> > Frame#43(C->H): Prepare Write Response
> > Frame#44(H->C): Execute Write Request
> > Frame#46(C->H): Error Response with code "Write Not Permitted"
> >
> > Expected ATT Message Exchange (Host <> Controller)
> > ----------------------------------------------------
> >  (H->C): Prepare Write Request
> > (C->H): Error Response with code "Write Not Permitted"
> >
> > Please find the attached Trace Capture via PTS software as
> > http://www.filedropper.com/tcgawsrbi15c20150523090341
> >
> > Code Snippet (Registered Characteristic as below - for Write not
> permitted):
> >
> > gatt_db_service_add_characteristic(service, &uuid,
> >                         BT_ATT_PERM_READ | BT_ATT_PERM_WRITE,
> >                         BT_GATT_CHRC_PROP_READ | BT_GATT_CHRC_PROP_WRITE,
> >                         custom_ccc_read_cb,
> custom_not_permi_resp_write_cb,
> >                         server);
> >
> 
> PTS FAILS:
> Here you are trying to write on a CHARC which is already given write
> permission.
> So, in this case BlueZ will send Success Prepare Write Response, which is
> correct.
> 
> PTS PASS:
> But If you remove the write permission from above code snippet, Bluez will
> send Write Not Permitted Error Response, which makes
> TC_GAW_SR_BI_15_C PASS.
> 
> For more info you can start tools/btgatt-server and emulate all services and
> cross-check the functionality.
> 
> Let others comment on this.
> 
> > static void custom_not_permi_resp_write_cb(struct gatt_db_attribute
> > *attrib,
> >                     unsigned int id, uint16_t offset,  const uint8_t
> *value, size_t len,
> >                     uint8_t opcode, struct bt_att *att,  void
> > *user_data)
> {
> >     uint8_t ecode = 0x3;
> >     gatt_db_attribute_write_result(attrib, id, ecode); }
> >
> > Any idea on why Bluez is not sending the Error Response After Prepare
> Write
> > Request from Host?
> >
> > Regards,
> > Ankur.
> > --
> 
> Regards,
> Gowtham Anandha Babu

Thank you Gowtham Anandha Babu for brief & useful explanation. I understand your concern and my mistake. I did the same and now the Testcase is Passed. As you have mentioned, I am itself using tools/btgatt-server.c application and modifying it to pass the PTS/GATT testcases.

Once I am done, I would like to share modified btgatt-server.c on forum so that anyone wants to pass PTS/GATT testcases, it will be useful. 

Appreciate your support,
Ankur
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux