monitor: Make --analyze print address OUI
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 9 Aug 2021 22:47:18 +0000 (15:47 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:36 +0000 (19:08 +0530)
This makes analyze.c use packet_print_addr which does take care of
decoding OUI portion of the address.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
monitor/analyze.c
monitor/broadcom.c
monitor/intel.c
monitor/l2cap.c
monitor/lmp.c
monitor/packet.c
monitor/packet.h

index bee05f4..a26c41f 100755 (executable)
@@ -13,6 +13,9 @@
 #include <config.h>
 #endif
 
+#ifndef TIZEN_FEATURE_BLUEZ_MODIFY
+#define _GNU_SOURCE
+#endif
 #include <stdio.h>
 #include <string.h>
 #include <sys/time.h>
@@ -23,7 +26,9 @@
 #include "src/shared/queue.h"
 #include "src/shared/btsnoop.h"
 #include "monitor/bt.h"
-#include "analyze.h"
+#include "monitor/display.h"
+#include "monitor/packet.h"
+#include "monitor/analyze.h"
 
 struct hci_dev {
        uint16_t index;
@@ -102,26 +107,25 @@ static void conn_destroy(void *data)
        conn->tx_pkt_med = conn->tx_bytes / conn->tx_num;
 
        printf("  Found %s connection with handle %u\n", str, conn->handle);
-       printf("    BD_ADDR %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X\n",
-                       conn->bdaddr[5], conn->bdaddr[4], conn->bdaddr[3],
-                       conn->bdaddr[2], conn->bdaddr[1], conn->bdaddr[0]);
+       /* TODO: Store address type */
+       packet_print_addr("Address", conn->bdaddr, 0x00);
        if (!conn->setup_seen)
-               printf("    Connection setup missing\n");
-       printf("    %lu RX packets\n", conn->rx_num);
-       printf("    %lu TX packets\n", conn->tx_num);
-       printf("    %lu TX completed packets\n", conn->tx_num_comp);
-       printf("    %ld msec min latency\n",
+               print_field("Connection setup missing");
+       print_field("%lu RX packets", conn->rx_num);
+       print_field("%lu TX packets", conn->tx_num);
+       print_field("%lu TX completed packets", conn->tx_num_comp);
+       print_field("%ld msec min latency",
                        conn->tx_lat_min.tv_sec * 1000 +
                        conn->tx_lat_min.tv_usec / 1000);
-       printf("    %ld msec max latency\n",
+       print_field("%ld msec max latency",
                        conn->tx_lat_max.tv_sec * 1000 +
                        conn->tx_lat_max.tv_usec / 1000);
-       printf("    %ld msec median latency\n",
+       print_field("%ld msec median latency",
                        conn->tx_lat_med.tv_sec * 1000 +
                        conn->tx_lat_med.tv_usec / 1000);
-       printf("    %u octets TX min packet size\n", conn->tx_pkt_min);
-       printf("    %u octets TX max packet size\n", conn->tx_pkt_max);
-       printf("    %u octets TX median packet size\n", conn->tx_pkt_med);
+       print_field("%u octets TX min packet size", conn->tx_pkt_min);
+       print_field("%u octets TX max packet size", conn->tx_pkt_max);
+       print_field("%u octets TX median packet size", conn->tx_pkt_med);
 
        queue_destroy(conn->tx_queue, free);
        free(conn);
index cf8d5ac..ca56233 100644 (file)
@@ -236,7 +236,7 @@ static void status_rsp(const void *data, uint8_t size)
 
 static void write_bd_addr_cmd(const void *data, uint8_t size)
 {
-       packet_print_addr("Address", data, false);
+       packet_print_addr("Address", data, 0x00);
 }
 
 static void update_uart_baud_rate_cmd(const void *data, uint8_t size)
index 4d5eb7d..cdb366a 100755 (executable)
@@ -232,7 +232,7 @@ static void print_version_tlv_min_fw(const struct intel_version_tlv *tlv,
 static void print_version_tlv_otp_bdaddr(const struct intel_version_tlv *tlv,
                                         char *type_str)
 {
-       packet_print_addr(type_str, tlv->val, false);
+       packet_print_addr(type_str, tlv->val, 0x00);
 }
 
 static void print_version_tlv_unknown(const struct intel_version_tlv *tlv,
@@ -534,7 +534,7 @@ static void write_bd_data_cmd(const void *data, uint8_t size)
 {
        uint8_t features[8];
 
-       packet_print_addr("Address", data, false);
+       packet_print_addr("Address", data, 0x00);
        packet_hexdump(data + 6, 6);
 
        memcpy(features, data + 12, 8);
@@ -552,13 +552,13 @@ static void read_bd_data_rsp(const void *data, uint8_t size)
        uint8_t status = get_u8(data);
 
        print_status(status);
-       packet_print_addr("Address", data + 1, false);
+       packet_print_addr("Address", data + 1, 0x00);
        packet_hexdump(data + 7, size - 7);
 }
 
 static void write_bd_address_cmd(const void *data, uint8_t size)
 {
-       packet_print_addr("Address", data, false);
+       packet_print_addr("Address", data, 0x00);
 }
 
 static void act_deact_traces_cmd(const void *data, uint8_t size)
@@ -1118,7 +1118,7 @@ static void sco_rejected_via_lmp_evt(const void *data, uint8_t size)
 {
        uint8_t reason = get_u8(data + 6);
 
-       packet_print_addr("Address", data, false);
+       packet_print_addr("Address", data, 0x00);
        packet_print_error("Reason", reason);
 }
 
index 6229019..5beb9da 100755 (executable)
@@ -2748,63 +2748,6 @@ static void att_packet(uint16_t index, bool in, uint16_t handle,
        opcode_data->func(&frame);
 }
 
-static void print_addr(const uint8_t *addr, uint8_t addr_type)
-{
-       const char *str;
-
-       switch (addr_type) {
-       case 0x00:
-               print_field("Address: %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X",
-                                               addr[5], addr[4], addr[3],
-                                               addr[2], addr[1], addr[0]);
-               break;
-       case 0x01:
-               switch ((addr[5] & 0xc0) >> 6) {
-               case 0x00:
-                       str = "Non-Resolvable";
-                       break;
-               case 0x01:
-                       str = "Resolvable";
-                       break;
-               case 0x03:
-                       str = "Static";
-                       break;
-               default:
-                       str = "Reserved";
-                       break;
-               }
-
-               print_field("Address: %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X"
-                                       " (%s)", addr[5], addr[4], addr[3],
-                                       addr[2], addr[1], addr[0], str);
-               break;
-       default:
-               print_field("Address: %2.2X-%2.2X-%2.2X-%2.2X-%2.2X-%2.2X",
-                                               addr[5], addr[4], addr[3],
-                                               addr[2], addr[1], addr[0]);
-               break;
-       }
-}
-
-static void print_addr_type(uint8_t addr_type)
-{
-       const char *str;
-
-       switch (addr_type) {
-       case 0x00:
-               str = "Public";
-               break;
-       case 0x01:
-               str = "Random";
-               break;
-       default:
-               str = "Reserved";
-               break;
-       }
-
-       print_field("Address type: %s (0x%2.2x)", str, addr_type);
-}
-
 static void print_smp_io_capa(uint8_t io_capa)
 {
        const char *str;
@@ -3037,8 +2980,7 @@ static void smp_ident_addr_info(const struct l2cap_frame *frame)
 {
        const struct bt_l2cap_smp_ident_addr_info *pdu = frame->data;
 
-       print_addr_type(pdu->addr_type);
-       print_addr(pdu->addr, pdu->addr_type);
+       packet_print_addr("Address", pdu->addr, pdu->addr_type);
 
        keys_update_identity_addr(pdu->addr, pdu->addr_type);
 }
index f218b72..f128828 100755 (executable)
@@ -309,7 +309,7 @@ static void slot_offset(const void *data, uint8_t size)
        const struct bt_lmp_slot_offset *pdu = data;
 
        print_field("Offset: %u usec", le16_to_cpu(pdu->offset));
-       packet_print_addr("Address", pdu->bdaddr, false);
+       packet_print_addr("Address", pdu->bdaddr, 0x00);
 }
 
 static void page_scan_mode_req(const void *data, uint8_t size)
index 541e526..0cba314 100755 (executable)
@@ -712,10 +712,9 @@ static void print_addr_resolve(const char *label, const uint8_t *addr,
        }
 }
 
-static void print_addr(const char *label, const uint8_t *addr,
-                                               uint8_t addr_type)
+static void print_addr(const char *label, const uint8_t *addr, uint8_t type)
 {
-       print_addr_resolve(label, addr, addr_type, true);
+       print_addr_resolve(label, addr, type, true);
 }
 
 static void print_bdaddr(const uint8_t *bdaddr)
@@ -3779,9 +3778,9 @@ static void print_eir(const uint8_t *eir, uint8_t eir_len, bool le)
                packet_hexdump(eir, eir_len - len);
 }
 
-void packet_print_addr(const char *label, const void *data, bool random)
+void packet_print_addr(const char *label, const void *data, uint8_t type)
 {
-       print_addr(label ? : "Address", data, random ? 0x01 : 0x00);
+       print_addr(label ? : "Address", data, type);
 }
 
 void packet_print_handle(uint16_t handle)
index 42a1a32..224095f 100755 (executable)
@@ -37,7 +37,7 @@ void packet_print_error(const char *label, uint8_t error);
 void packet_print_version(const char *label, uint8_t version,
                                const char *sublabel, uint16_t subversion);
 void packet_print_company(const char *label, uint16_t company);
-void packet_print_addr(const char *label, const void *data, bool random);
+void packet_print_addr(const char *label, const void *data, uint8_t type);
 void packet_print_handle(uint16_t handle);
 void packet_print_rssi(const char *label, int8_t rssi);
 void packet_print_ad(const void *data, uint8_t size);