# USB/IP server library This folder contains set of classes and structures that constitute basic USB/IP server. Protocol used in this library is defined as part of [Linux kernel documentation](https://www.kernel.org/doc/Documentation/usb/usbip_protocol.txt). ## Structure ### [`vadb::usbip::Device`](./device.h)[](#Device) Structure describing individual device accessible over USB/IP protocol. ### [`vadb::usbip::DevicePool`](./device_pool.h)[](#DevicePool) DevicePool holds a set of [Devices](#Device) that can be enumerated and accessed by clients of this Server. ### [`vadb::usbip::Server`](./server.h) Purpose of this class is to start a new listening socket and accept incoming USB/IP connections & requests. ### [`vadb::usbip::Client`](./client.h) Client class represents individual USB/IP connection. Client enables remote USB/IP client to enumerate and access devices registered in [DevicePool](#DevicePool). ### [`USB/IP Messages`](./messages.h) This file contains structures and enum values defined by the USB/IP protocol. All definitions found there have been collected from [Linux kernel documentation](https://www.kernel.org/doc/Documentation/usb/usbip_protocol.txt) .