Re: [PATCH] Fix for Bluetooth SIG test L2CAP/COS/CFD/BV-14-C.

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

 



On Tue, Nov 03, 2020 at 01:43:01PM -0800, Luiz Augusto von Dentz wrote:
> Hi Jimmy,
> 
> On Mon, Nov 2, 2020 at 5:33 AM Jimmy Wahlberg <jimmywa@xxxxxxxxxxx> wrote:
> >
> > This test case is meant to verify that multiple
> > unknown options is included in the response.
> >
> > Unknown options shall be in the response if
> > they are not hints according to Bluetooth Core
> > Spec v5.2. See chapter 4.5 L2CAP_CONFIGURATION_RSP
> 
> Can you add the HCI trace (btmon) with and without the patch. Also
> perhaps we should have a comment why this is needed on the code:

Hi, thank you for the feedback. Here is some btmon output without the
patch. 

> ACL Data RX: Handle 11 flags 0x02 dlen 16                #50 [hci0] 72.519062
      L2CAP: Configure Request (0x04) ident 16 len 8
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00                                            ..              
< ACL Data TX: Handle 11 flags 0x00 dlen 15                #51 [hci0] 72.519162
      L2CAP: Configure Response (0x05) ident 16 len 7
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        10                                               .               
> ACL Data RX: Handle 11 flags 0x02 dlen 20                #52 [hci0] 72.634066
      L2CAP: Configure Request (0x04) ident 17 len 12
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [hint]
        10 00 11 02 11 00                                ......          
< ACL Data TX: Handle 11 flags 0x00 dlen 15                #53 [hci0] 72.634178
      L2CAP: Configure Response (0x05) ident 17 len 7
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        11                                               .               
> HCI Event: Number of Completed Packets (0x13) plen 5     #54 [hci0] 72.656717
        Num handles: 1
        Handle: 11
        Count: 2
> ACL Data RX: Handle 11 flags 0x02 dlen 24                #55 [hci0] 72.764088
      L2CAP: Configure Request (0x04) ident 18 len 16
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00 11 02 11 00 12 02 12 00                    ..........      
< ACL Data TX: Handle 11 flags 0x00 dlen 17                #56 [hci0] 72.764235
      L2CAP: Configure Response (0x05) ident 18 len 9
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x10) [mandatory]
        12

Here is btmon output with the patch. Both outputs are from running the
test case in subject.

> ACL Data RX: Handle 11 flags 0x02 dlen 16               #89 [hci0] 388.666111
      L2CAP: Configure Request (0x04) ident 3 len 8
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00                                            ..
< ACL Data TX: Handle 11 flags 0x00 dlen 17               #90 [hci0] 388.666216
      L2CAP: Configure Response (0x05) ident 3 len 9
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x10) [mandatory]
        10                                               .
> HCI Event: Number of Completed Packets (0x13) plen 5    #91 [hci0] 388.804992
        Num handles: 1
        Handle: 11
        Count: 1
> ACL Data RX: Handle 11 flags 0x02 dlen 20               #92 [hci0] 390.763564
      L2CAP: Configure Request (0x04) ident 4 len 12
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [hint]
        10 00 11 02 11 00                                ......
< ACL Data TX: Handle 11 flags 0x00 dlen 17               #93 [hci0] 390.763727
      L2CAP: Configure Response (0x05) ident 4 len 9
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x11) [mandatory]
        11                                               .
> HCI Event: Number of Completed Packets (0x13) plen 5    #94 [hci0] 390.930118
        Num handles: 1
        Handle: 11
        Count: 1
> ACL Data RX: Handle 11 flags 0x02 dlen 24               #95 [hci0] 392.863591
      L2CAP: Configure Request (0x04) ident 5 len 16
        Destination CID: 64
        Flags: 0x0000
        Option: Unknown (0x10) [mandatory]
        10 00 11 02 11 00 12 02 12 00                    ..........
< ACL Data TX: Handle 11 flags 0x00 dlen 23               #96 [hci0] 392.863742
      L2CAP: Configure Response (0x05) ident 5 len 15
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        Option: Unknown (0x10) [mandatory]
        10 11 01 11 12 01 12

Regarding adding a comment. I will gladly add this comment if you think
it's important. 

> 
>   'On an unknown option failure (Result=0x0003), the option(s) that contain an
>   option type field that is not understood by the recipient of the
>   L2CAP_CONFIGURATION_REQ packet shall be included in the
>   L2CAP_CONFIGURATION_RSP packet unless they are hints.'
> 
> > Signed-off-by: Jimmy Wahlberg <jimmywa@xxxxxxxxxxx>
> > ---
> >  net/bluetooth/l2cap_core.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> > index 1ab27b90ddcb..16956f323688 100644
> > --- a/net/bluetooth/l2cap_core.c
> > +++ b/net/bluetooth/l2cap_core.c
> > @@ -3627,7 +3627,7 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
> >                         if (hint)
> >                                 break;
> >                         result = L2CAP_CONF_UNKNOWN;
> > -                       *((u8 *) ptr++) = type;
> > +                       l2cap_add_conf_opt(&ptr, (u8)type, sizeof(u8), type, endptr - ptr);
> >                         break;
> >                 }
> >         }
> > --
> > 2.25.1
> >
> > Hi,
> >
> > While running tests I encountered this one test that I could not pass. After some troubleshooting I landed in this patch. Please let me know what you think.
> >
> > Best regards
> > Jimmy
> 
> 
> 
> -- 
> Luiz Augusto von Dentz



[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