~ubuntu-branches/ubuntu/oneiric/bluez/oneiric

« back to all changes in this revision

Viewing changes to test/l2test.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2011-08-01 16:07:29 UTC
  • mfrom: (1.1.35 upstream)
  • Revision ID: james.westby@ubuntu.com-20110801160729-s7bv7bh6u4o5vhlc
Tags: 4.96-0ubuntu1
New upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
112
112
static int timestamp = 0;
113
113
static int defer_setup = 0;
114
114
 
 
115
static struct {
 
116
        char    *name;
 
117
        int     flag;
 
118
} l2cap_modes[] = {
 
119
        { "basic",      L2CAP_MODE_BASIC        },
 
120
        /* Not implemented
 
121
        { "flowctl",    L2CAP_MODE_FLOWCTL      },
 
122
        { "retrans",    L2CAP_MODE_RETRANS      },
 
123
        */
 
124
        { "ertm",       L2CAP_MODE_ERTM         },
 
125
        { "streaming",  L2CAP_MODE_STREAMING    },
 
126
        { 0 }
 
127
};
 
128
 
 
129
static void list_l2cap_modes(void)
 
130
{
 
131
        int i;
 
132
 
 
133
        printf("l2test - L2CAP testing\n"
 
134
                "List L2CAP modes:\n");
 
135
        for (i=0; l2cap_modes[i].name; i++)
 
136
                printf("\t%s\n", l2cap_modes[i].name);
 
137
}
 
138
 
115
139
static float tv2fl(struct timeval tv)
116
140
{
117
141
        return (float)tv.tv_sec + (float)(tv.tv_usec/1000000.0);
948
972
        case 0x0000:
949
973
                memcpy(&mask, rsp->data, sizeof(mask));
950
974
                printf("Extended feature mask is 0x%04x\n", btohl(mask));
951
 
                if (mask & 0x01)
 
975
                if (mask & L2CAP_FEAT_FLOWCTL)
952
976
                        printf("  Flow control mode\n");
953
 
                if (mask & 0x02)
 
977
                if (mask & L2CAP_FEAT_RETRANS)
954
978
                        printf("  Retransmission mode\n");
955
 
                if (mask & 0x04)
 
979
                if (mask & L2CAP_FEAT_BIDIR_QOS)
956
980
                        printf("  Bi-directional QoS\n");
957
 
                if (mask & 0x08)
 
981
                if (mask & L2CAP_FEAT_ERTM)
958
982
                        printf("  Enhanced Retransmission mode\n");
959
 
                if (mask & 0x10)
 
983
                if (mask & L2CAP_FEAT_STREAMING)
960
984
                        printf("  Streaming mode\n");
961
 
                if (mask & 0x20)
 
985
                if (mask & L2CAP_FEAT_FCS)
962
986
                        printf("  FCS Option\n");
963
 
                if (mask & 0x40)
 
987
                if (mask & L2CAP_FEAT_EXT_FLOW)
964
988
                        printf("  Extended Flow Specification\n");
965
 
                if (mask & 0x80)
 
989
                if (mask & L2CAP_FEAT_FIXED_CHAN)
966
990
                        printf("  Fixed Channels\n");
967
 
                if (mask & 0x0100)
 
991
                if (mask & L2CAP_FEAT_EXT_WINDOW)
968
992
                        printf("  Extended Window Size\n");
969
 
                if (mask & 0x0200)
 
993
                if (mask & L2CAP_FEAT_UCD)
970
994
                        printf("  Unicast Connectionless Data Reception\n");
971
995
                break;
972
996
        case 0x0001:
1083
1107
                "\t[-N num] send num frames (default = infinite)\n"
1084
1108
                "\t[-C num] send num frames before delay (default = 1)\n"
1085
1109
                "\t[-D milliseconds] delay after sending num frames (default = 0)\n"
1086
 
                "\t[-X mode] select retransmission/flow-control mode\n"
 
1110
                "\t[-X mode] l2cap mode (help for list, default = basic)\n"
1087
1111
                "\t[-F fcs] use CRC16 check (default = 1)\n"
1088
1112
                "\t[-Q num] Max Transmit value (default = 3)\n"
1089
1113
                "\t[-Z size] Transmission Window size (default = 63)\n"
1100
1124
int main(int argc, char *argv[])
1101
1125
{
1102
1126
        struct sigaction sa;
1103
 
        int opt, sk, mode = RECV, need_addr = 0;
 
1127
        int opt, sk, i, mode = RECV, need_addr = 0;
1104
1128
 
1105
1129
        bacpy(&bdaddr, BDADDR_ANY);
1106
1130
 
1218
1242
                        break;
1219
1243
 
1220
1244
                case 'X':
1221
 
                        if (strcasecmp(optarg, "ertm") == 0)
1222
 
                                rfcmode = L2CAP_MODE_ERTM;
1223
 
                        else
1224
 
                                rfcmode = atoi(optarg);
 
1245
                        rfcmode = -1;
 
1246
 
 
1247
                        for (i = 0; l2cap_modes[i].name; i++)
 
1248
                                if (!strcasecmp(l2cap_modes[i].name, optarg))
 
1249
                                        rfcmode = l2cap_modes[i].flag;
 
1250
 
 
1251
                        if (!strcasecmp(optarg, "help") || rfcmode == -1) {
 
1252
                                list_l2cap_modes();
 
1253
                                exit(1);
 
1254
                        }
 
1255
 
1225
1256
                        break;
1226
1257
 
1227
1258
                case 'F':