Hello again, Answering my own question: https://elixir.bootlin.com/linux/v6.10.2/source/include/uapi/linux/virtio_net.h#L92 Thanks, Carlos On 8/22/24 1:21 PM, Carlos Bilbao wrote: > Hello folks, > > I'm using the code below to retrieve configuration data for my vDPA file > via ioctl. I get as output: > > Configuration data (24 bytes): > 5a c3 5f 68 48 a9 01 00 08 00 dc 05 00 00 00 00 > 00 00 00 00 00 00 00 00 > ASCII representation: > Z._hH................... > > Could a good Samaritan point me in the right direction for the docs I need > to understand these values and convert them to a human-readable format? > hank you in advance! > > Regards, > Carlos > > --- > > void check_config(int fd) { > > uint32_t size; > struct vhost_vdpa_config *config; > uint8_t *buf; > > if (ioctl(fd, VHOST_VDPA_GET_CONFIG_SIZE, &size) < 0) { > perror("ioctl failed"); > return; > } > > config = malloc(sizeof(struct vhost_vdpa_config) + size); > if (!config) { > perror("malloc failed"); > return; > } > > memset(config, 0, sizeof(struct vhost_vdpa_config) + size); > config->len = size; > config->off = 0; > > buf = config->buf; > > if (ioctl(fd, VHOST_VDPA_GET_CONFIG, config) < 0) { > perror("ioctl failed"); > } else { > printf("Configuration data (%u bytes):\n", size); > > /* Print the data in a human-readable format */ > for (unsigned int i = 0; i < size; i++) { > if (i % 16 == 0 && i != 0) printf("\n"); > printf("%02x ", buf[i]); > } > printf("\n"); > > printf("ASCII representation:\n"); > for (unsigned int i = 0; i < size; i++) { > if (buf[i] >= 32 && buf[i] <= 126) { > printf("%c", buf[i]); > } else { > printf("."); > } > } > printf("\n"); > } > > free(config); > }