diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2015-06-01 11:27:04 +0200 |
---|---|---|
committer | Szymon Janc <szymon.janc@tieto.com> | 2015-06-01 14:40:52 +0200 |
commit | e2342918b1fa9124088e050ae8fb94ff54cb298c (patch) | |
tree | aa6c256405814760a95477e16e33bc075c145753 /tools/l2test.c | |
parent | 8beffeca7fb5be3c0e99bce737076eb467fbd363 (diff) | |
download | bluez-e2342918b1fa9124088e050ae8fb94ff54cb298c.tar.gz |
tools/l2test: Add -e option
This allows to specify initial value for sequence when sending frames.
Diffstat (limited to 'tools/l2test.c')
-rw-r--r-- | tools/l2test.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/l2test.c b/tools/l2test.c index 80655781a..75603a8a7 100644 --- a/tools/l2test.c +++ b/tools/l2test.c @@ -108,6 +108,9 @@ static unsigned long send_delay = 0; /* Default delay before receiving */ static unsigned long recv_delay = 0; +/* Initial sequence value when sending frames */ +static int seq_start = 0; + static char *filename = NULL; static int rfcmode = 0; @@ -974,7 +977,7 @@ static void do_send(int sk) buf[i] = 0x7f; } - seq = 0; + seq = seq_start; while ((num_frames == -1) || (num_frames-- > 0)) { put_le32(seq, buf); put_le16(data_size, buf + 4); @@ -997,7 +1000,8 @@ static void do_send(int sk) size -= len; } - if (num_frames && send_delay && count && !(seq % count)) + if (num_frames && send_delay && count && + !(seq % (count + seq_start))) usleep(send_delay); } } @@ -1325,7 +1329,8 @@ static void usage(void) "\t[-S] secure connection\n" "\t[-M] become master\n" "\t[-T] enable timestamps\n" - "\t[-V type] address type (help for list, default = bredr)\n"); + "\t[-V type] address type (help for list, default = bredr)\n" + "\t[-e seq] initial sequence value (default = 0)\n"); } int main(int argc, char *argv[]) @@ -1336,7 +1341,7 @@ int main(int argc, char *argv[]) bacpy(&bdaddr, BDADDR_ANY); while ((opt = getopt(argc, argv, "rdscuwmntqxyzpb:a:" - "i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:Y:H:K:V:RUGAESMT")) != EOF) { + "i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:Y:H:K:V:RUGAESMTe:")) != EOF) { switch (opt) { case 'r': mode = RECV; @@ -1542,6 +1547,10 @@ int main(int argc, char *argv[]) break; + case 'e': + seq_start = atoi(optarg); + break; + default: usage(); exit(1); |