summaryrefslogtreecommitdiffstats
path: root/tinyusb/lib/networking
diff options
context:
space:
mode:
authorWillian Paixao <willian@ufpa.br>2021-12-05 19:16:34 +0100
committerWillian Paixao <willian@ufpa.br>2021-12-05 19:16:34 +0100
commitac2e205ae9f465c27297ea542c72e8cfe4966f8c (patch)
tree16e4d1268b2631ba7e17dcda8f366f070fbd7475 /tinyusb/lib/networking
parentbbd394a19aaa334a179c36cf2ed2a066f1bb312c (diff)
downloadSensor-Watch-ac2e205ae9f465c27297ea542c72e8cfe4966f8c.tar.gz
Sensor-Watch-ac2e205ae9f465c27297ea542c72e8cfe4966f8c.tar.bz2
Sensor-Watch-ac2e205ae9f465c27297ea542c72e8cfe4966f8c.zip
remove tinyusb directory
Diffstat (limited to 'tinyusb/lib/networking')
-rwxr-xr-xtinyusb/lib/networking/dhserver.c348
-rwxr-xr-xtinyusb/lib/networking/dhserver.h62
-rwxr-xr-xtinyusb/lib/networking/dnserver.c200
-rwxr-xr-xtinyusb/lib/networking/dnserver.h47
-rwxr-xr-xtinyusb/lib/networking/ndis.h266
-rwxr-xr-xtinyusb/lib/networking/rndis_protocol.h307
-rwxr-xr-xtinyusb/lib/networking/rndis_reports.c303
7 files changed, 0 insertions, 1533 deletions
diff --git a/tinyusb/lib/networking/dhserver.c b/tinyusb/lib/networking/dhserver.c
deleted file mode 100755
index 9287858e..00000000
--- a/tinyusb/lib/networking/dhserver.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 by Sergey Fetisov <fsenok@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include "dhserver.h"
-
-/* DHCP message type */
-#define DHCP_DISCOVER 1
-#define DHCP_OFFER 2
-#define DHCP_REQUEST 3
-#define DHCP_DECLINE 4
-#define DHCP_ACK 5
-#define DHCP_NAK 6
-#define DHCP_RELEASE 7
-#define DHCP_INFORM 8
-
-/* DHCP options */
-enum DHCP_OPTIONS
-{
- DHCP_PAD = 0,
- DHCP_SUBNETMASK = 1,
- DHCP_ROUTER = 3,
- DHCP_DNSSERVER = 6,
- DHCP_HOSTNAME = 12,
- DHCP_DNSDOMAIN = 15,
- DHCP_MTU = 26,
- DHCP_BROADCAST = 28,
- DHCP_PERFORMROUTERDISC = 31,
- DHCP_STATICROUTE = 33,
- DHCP_NISDOMAIN = 40,
- DHCP_NISSERVER = 41,
- DHCP_NTPSERVER = 42,
- DHCP_VENDOR = 43,
- DHCP_IPADDRESS = 50,
- DHCP_LEASETIME = 51,
- DHCP_OPTIONSOVERLOADED = 52,
- DHCP_MESSAGETYPE = 53,
- DHCP_SERVERID = 54,
- DHCP_PARAMETERREQUESTLIST = 55,
- DHCP_MESSAGE = 56,
- DHCP_MAXMESSAGESIZE = 57,
- DHCP_RENEWALTIME = 58,
- DHCP_REBINDTIME = 59,
- DHCP_CLASSID = 60,
- DHCP_CLIENTID = 61,
- DHCP_USERCLASS = 77, /* RFC 3004 */
- DHCP_FQDN = 81,
- DHCP_DNSSEARCH = 119, /* RFC 3397 */
- DHCP_CSR = 121, /* RFC 3442 */
- DHCP_MSCSR = 249, /* MS code for RFC 3442 */
- DHCP_END = 255
-};
-
-typedef struct
-{
- uint8_t dp_op; /* packet opcode type */
- uint8_t dp_htype; /* hardware addr type */
- uint8_t dp_hlen; /* hardware addr length */
- uint8_t dp_hops; /* gateway hops */
- uint32_t dp_xid; /* transaction ID */
- uint16_t dp_secs; /* seconds since boot began */
- uint16_t dp_flags;
- uint8_t dp_ciaddr[4]; /* client IP address */
- uint8_t dp_yiaddr[4]; /* 'your' IP address */
- uint8_t dp_siaddr[4]; /* server IP address */
- uint8_t dp_giaddr[4]; /* gateway IP address */
- uint8_t dp_chaddr[16]; /* client hardware address */
- uint8_t dp_legacy[192];
- uint8_t dp_magic[4];
- uint8_t dp_options[275]; /* options area */
-} DHCP_TYPE;
-
-DHCP_TYPE dhcp_data;
-static struct udp_pcb *pcb = NULL;
-static const dhcp_config_t *config = NULL;
-
-char magic_cookie[] = {0x63,0x82,0x53,0x63};
-
-static ip_addr_t get_ip(const uint8_t *pnt)
-{
- ip_addr_t result;
- memcpy(&result, pnt, sizeof(result));
- return result;
-}
-
-static void set_ip(uint8_t *pnt, ip_addr_t value)
-{
- memcpy(pnt, &value.addr, sizeof(value.addr));
-}
-
-static dhcp_entry_t *entry_by_ip(ip_addr_t ip)
-{
- int i;
- for (i = 0; i < config->num_entry; i++)
- if (config->entries[i].addr.addr == ip.addr)
- return &config->entries[i];
- return NULL;
-}
-
-static dhcp_entry_t *entry_by_mac(uint8_t *mac)
-{
- int i;
- for (i = 0; i < config->num_entry; i++)
- if (memcmp(config->entries[i].mac, mac, 6) == 0)
- return &config->entries[i];
- return NULL;
-}
-
-static __inline bool is_vacant(dhcp_entry_t *entry)
-{
- return memcmp("\0\0\0\0\0", entry->mac, 6) == 0;
-}
-
-static dhcp_entry_t *vacant_address(void)
-{
- int i;
- for (i = 0; i < config->num_entry; i++)
- if (is_vacant(config->entries + i))
- return config->entries + i;
- return NULL;
-}
-
-static __inline void free_entry(dhcp_entry_t *entry)
-{
- memset(entry->mac, 0, 6);
-}
-
-uint8_t *find_dhcp_option(uint8_t *attrs, int size, uint8_t attr)
-{
- int i = 0;
- while ((i + 1) < size)
- {
- int next = i + attrs[i + 1] + 2;
- if (next > size) return NULL;
- if (attrs[i] == attr)
- return attrs + i;
- i = next;
- }
- return NULL;
-}
-
-int fill_options(void *dest,
- uint8_t msg_type,
- const char *domain,
- ip_addr_t dns,
- int lease_time,
- ip_addr_t serverid,
- ip_addr_t router,
- ip_addr_t subnet)
-{
- uint8_t *ptr = (uint8_t *)dest;
- /* ACK message type */
- *ptr++ = 53;
- *ptr++ = 1;
- *ptr++ = msg_type;
-
- /* dhcp server identifier */
- *ptr++ = DHCP_SERVERID;
- *ptr++ = 4;
- set_ip(ptr, serverid);
- ptr += 4;
-
- /* lease time */
- *ptr++ = DHCP_LEASETIME;
- *ptr++ = 4;
- *ptr++ = (lease_time >> 24) & 0xFF;
- *ptr++ = (lease_time >> 16) & 0xFF;
- *ptr++ = (lease_time >> 8) & 0xFF;
- *ptr++ = (lease_time >> 0) & 0xFF;
-
- /* subnet mask */
- *ptr++ = DHCP_SUBNETMASK;
- *ptr++ = 4;
- set_ip(ptr, subnet);
- ptr += 4;
-
- /* router */
- if (router.addr != 0)
- {
- *ptr++ = DHCP_ROUTER;
- *ptr++ = 4;
- set_ip(ptr, router);
- ptr += 4;
- }
-
- /* domain name */
- if (domain != NULL)
- {
- int len = strlen(domain);
- *ptr++ = DHCP_DNSDOMAIN;
- *ptr++ = len;
- memcpy(ptr, domain, len);
- ptr += len;
- }
-
- /* domain name server (DNS) */
- if (dns.addr != 0)
- {
- *ptr++ = DHCP_DNSSERVER;
- *ptr++ = 4;
- set_ip(ptr, dns);
- ptr += 4;
- }
-
- /* end */
- *ptr++ = DHCP_END;
- return ptr - (uint8_t *)dest;
-}
-
-static void udp_recv_proc(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
-{
- uint8_t *ptr;
- dhcp_entry_t *entry;
- struct pbuf *pp;
- struct netif *netif = netif_get_by_index(p->if_idx);
-
- (void)arg;
- (void)addr;
-
- unsigned n = p->len;
- if (n > sizeof(dhcp_data)) n = sizeof(dhcp_data);
- memcpy(&dhcp_data, p->payload, n);
- switch (dhcp_data.dp_options[2])
- {
- case DHCP_DISCOVER:
- entry = entry_by_mac(dhcp_data.dp_chaddr);
- if (entry == NULL) entry = vacant_address();
- if (entry == NULL) break;
-
- dhcp_data.dp_op = 2; /* reply */
- dhcp_data.dp_secs = 0;
- dhcp_data.dp_flags = 0;
- set_ip(dhcp_data.dp_yiaddr, entry->addr);
- memcpy(dhcp_data.dp_magic, magic_cookie, 4);
-
- memset(dhcp_data.dp_options, 0, sizeof(dhcp_data.dp_options));
-
- fill_options(dhcp_data.dp_options,
- DHCP_OFFER,
- config->domain,
- config->dns,
- entry->lease,
- *netif_ip4_addr(netif),
- config->router,
- *netif_ip4_netmask(netif));
-
- pp = pbuf_alloc(PBUF_TRANSPORT, sizeof(dhcp_data), PBUF_POOL);
- if (pp == NULL) break;
- memcpy(pp->payload, &dhcp_data, sizeof(dhcp_data));
- udp_sendto(upcb, pp, IP_ADDR_BROADCAST, port);
- pbuf_free(pp);
- break;
-
- case DHCP_REQUEST:
- /* 1. find requested ipaddr in option list */
- ptr = find_dhcp_option(dhcp_data.dp_options, sizeof(dhcp_data.dp_options), DHCP_IPADDRESS);
- if (ptr == NULL) break;
- if (ptr[1] != 4) break;
- ptr += 2;
-
- /* 2. does hw-address registered? */
- entry = entry_by_mac(dhcp_data.dp_chaddr);
- if (entry != NULL) free_entry(entry);
-
- /* 3. find requested ipaddr */
- entry = entry_by_ip(get_ip(ptr));
- if (entry == NULL) break;
- if (!is_vacant(entry)) break;
-
- /* 4. fill struct fields */
- memcpy(dhcp_data.dp_yiaddr, ptr, 4);
- dhcp_data.dp_op = 2; /* reply */
- dhcp_data.dp_secs = 0;
- dhcp_data.dp_flags = 0;
- memcpy(dhcp_data.dp_magic, magic_cookie, 4);
-
- /* 5. fill options */
- memset(dhcp_data.dp_options, 0, sizeof(dhcp_data.dp_options));
-
- fill_options(dhcp_data.dp_options,
- DHCP_ACK,
- config->domain,
- config->dns,
- entry->lease,
- *netif_ip4_addr(netif),
- config->router,
- *netif_ip4_netmask(netif));
-
- /* 6. send ACK */
- pp = pbuf_alloc(PBUF_TRANSPORT, sizeof(dhcp_data), PBUF_POOL);
- if (pp == NULL) break;
- memcpy(entry->mac, dhcp_data.dp_chaddr, 6);
- memcpy(pp->payload, &dhcp_data, sizeof(dhcp_data));
- udp_sendto(upcb, pp, IP_ADDR_BROADCAST, port);
- pbuf_free(pp);
- break;
-
- default:
- break;
- }
- pbuf_free(p);
-}
-
-err_t dhserv_init(const dhcp_config_t *c)
-{
- err_t err;
- udp_init();
- dhserv_free();
- pcb = udp_new();
- if (pcb == NULL)
- return ERR_MEM;
- err = udp_bind(pcb, IP_ADDR_ANY, c->port);
- if (err != ERR_OK)
- {
- dhserv_free();
- return err;
- }
- udp_recv(pcb, udp_recv_proc, NULL);
- config = c;
- return ERR_OK;
-}
-
-void dhserv_free(void)
-{
- if (pcb == NULL) return;
- udp_remove(pcb);
- pcb = NULL;
-}
diff --git a/tinyusb/lib/networking/dhserver.h b/tinyusb/lib/networking/dhserver.h
deleted file mode 100755
index 0d22461c..00000000
--- a/tinyusb/lib/networking/dhserver.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 by Sergey Fetisov <fsenok@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * version: 1.0 demo (7.02.2015)
- * brief: tiny dhcp ipv4 server using lwip (pcb)
- * ref: https://lists.gnu.org/archive/html/lwip-users/2012-12/msg00016.html
- */
-
-#ifndef DHSERVER_H
-#define DHSERVER_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-#include "lwip/err.h"
-#include "lwip/udp.h"
-#include "netif/etharp.h"
-
-typedef struct dhcp_entry
-{
- uint8_t mac[6];
- ip_addr_t addr;
- uint32_t lease;
-} dhcp_entry_t;
-
-typedef struct dhcp_config
-{
- ip_addr_t router;
- uint16_t port;
- ip_addr_t dns;
- const char *domain;
- int num_entry;
- dhcp_entry_t *entries;
-} dhcp_config_t;
-
-err_t dhserv_init(const dhcp_config_t *config);
-void dhserv_free(void);
-
-#endif /* DHSERVER_H */
diff --git a/tinyusb/lib/networking/dnserver.c b/tinyusb/lib/networking/dnserver.c
deleted file mode 100755
index 6df0bd0c..00000000
--- a/tinyusb/lib/networking/dnserver.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 by Sergey Fetisov <fsenok@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * version: 1.0 demo (7.02.2015)
- * brief: tiny dns ipv4 server using lwip (pcb)
- */
-
-#include "dnserver.h"
-
-#define DNS_MAX_HOST_NAME_LEN 128
-
-static struct udp_pcb *pcb = NULL;
-dns_query_proc_t query_proc = NULL;
-
-#pragma pack(push, 1)
-typedef struct
-{
-#if BYTE_ORDER == LITTLE_ENDIAN
- uint8_t rd: 1, /* Recursion Desired */
- tc: 1, /* Truncation Flag */
- aa: 1, /* Authoritative Answer Flag */
- opcode: 4, /* Operation code */
- qr: 1; /* Query/Response Flag */
- uint8_t rcode: 4, /* Response Code */
- z: 3, /* Zero */
- ra: 1; /* Recursion Available */
-#else
- uint8_t qr: 1, /* Query/Response Flag */
- opcode: 4, /* Operation code */
- aa: 1, /* Authoritative Answer Flag */
- tc: 1, /* Truncation Flag */
- rd: 1; /* Recursion Desired */
- uint8_t ra: 1, /* Recursion Available */
- z: 3, /* Zero */
- rcode: 4; /* Response Code */
-#endif
-} dns_header_flags_t;
-
-typedef struct
-{
- uint16_t id;
- dns_header_flags_t flags;
- uint16_t n_record[4];
-} dns_header_t;
-
-typedef struct dns_answer
-{
- uint16_t name;
- uint16_t type;
- uint16_t Class;
- uint32_t ttl;
- uint16_t len;
- uint32_t addr;
-} dns_answer_t;
-#pragma pack(pop)
-
-typedef struct dns_query
-{
- char name[DNS_MAX_HOST_NAME_LEN];
- uint16_t type;
- uint16_t Class;
-} dns_query_t;
-
-static uint16_t get_uint16(const uint8_t *pnt)
-{
- uint16_t result;
- memcpy(&result, pnt, sizeof(result));
- return result;
-}
-
-static int parse_next_query(void *data, int size, dns_query_t *query)
-{
- int len;
- int lables;
- uint8_t *ptr;
-
- len = 0;
- lables = 0;
- ptr = (uint8_t *)data;
-
- while (true)
- {
- uint8_t lable_len;
- if (size <= 0) return -1;
- lable_len = *ptr++;
- size--;
- if (lable_len == 0) break;
- if (lables > 0)
- {
- if (len == DNS_MAX_HOST_NAME_LEN) return -2;
- query->name[len++] = '.';
- }
- if (lable_len > size) return -1;
- if (len + lable_len >= DNS_MAX_HOST_NAME_LEN) return -2;
- memcpy(&query->name[len], ptr, lable_len);
- len += lable_len;
- ptr += lable_len;
- size -= lable_len;
- lables++;
- }
-
- if (size < 4) return -1;
- query->name[len] = 0;
- query->type = get_uint16(ptr);
- ptr += 2;
- query->Class = get_uint16(ptr);
- ptr += 2;
- return ptr - (uint8_t *)data;
-}
-
-static void udp_recv_proc(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
-{
- int len;
- dns_header_t *header;
- static dns_query_t query;
- struct pbuf *out;
- ip_addr_t host_addr;
- dns_answer_t *answer;
-
- (void)arg;
-
- if (p->len <= sizeof(dns_header_t)) goto error;
- header = (dns_header_t *)p->payload;
- if (header->flags.qr != 0) goto error;
- if (ntohs(header->n_record[0]) != 1) goto error;
-
- len = parse_next_query(header + 1, p->len - sizeof(dns_header_t), &query);
- if (len < 0) goto error;
- if (!query_proc(query.name, &host_addr)) goto error;
-
- len += sizeof(dns_header_t);
- out = pbuf_alloc(PBUF_TRANSPORT, len + 16, PBUF_POOL);
- if (out == NULL) goto error;
-
- memcpy(out->payload, p->payload, len);
- header = (dns_header_t *)out->payload;
- header->flags.qr = 1;
- header->n_record[1] = htons(1);
- answer = (struct dns_answer *)((uint8_t *)out->payload + len);
- answer->name = htons(0xC00C);
- answer->type = htons(1);
- answer->Class = htons(1);
- answer->ttl = htonl(32);
- answer->len = htons(4);
- answer->addr = host_addr.addr;
-
- udp_sendto(upcb, out, addr, port);
- pbuf_free(out);
-
-error:
- pbuf_free(p);
-}
-
-err_t dnserv_init(const ip_addr_t *bind, uint16_t port, dns_query_proc_t qp)
-{
- err_t err;
- udp_init();
- dnserv_free();
- pcb = udp_new();
- if (pcb == NULL)
- return ERR_MEM;
- err = udp_bind(pcb, bind, port);
- if (err != ERR_OK)
- {
- dnserv_free();
- return err;
- }
- udp_recv(pcb, udp_recv_proc, NULL);
- query_proc = qp;
- return ERR_OK;
-}
-
-void dnserv_free()
-{
- if (pcb == NULL) return;
- udp_remove(pcb);
- pcb = NULL;
-}
diff --git a/tinyusb/lib/networking/dnserver.h b/tinyusb/lib/networking/dnserver.h
deleted file mode 100755
index 130991f5..00000000
--- a/tinyusb/lib/networking/dnserver.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 by Sergey Fetisov <fsenok@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * version: 1.0 demo (7.02.2015)
- * brief: tiny dns ipv4 server using lwip (pcb)
- */
-
-#ifndef DNSERVER
-#define DNSERVER
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-#include "lwip/def.h"
-#include "lwip/err.h"
-#include "lwip/udp.h"
-#include "netif/etharp.h"
-
-typedef bool (*dns_query_proc_t)(const char *name, ip_addr_t *addr);
-
-err_t dnserv_init(const ip_addr_t *bind, uint16_t port, dns_query_proc_t query_proc);
-void dnserv_free(void);
-
-#endif
diff --git a/tinyusb/lib/networking/ndis.h b/tinyusb/lib/networking/ndis.h
deleted file mode 100755
index 1c737574..00000000
--- a/tinyusb/lib/networking/ndis.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/* This file has been prepared for Doxygen automatic documentation generation.*/
-/*! \file ndis.h ***************************************************************
- *
- * \brief
- * This file contains the possible external configuration of the USB.
- *
- * \addtogroup usbstick
- *
- *
- ******************************************************************************/
-
-/**
- \ingroup usbstick
- \defgroup RNDIS RNDIS Support
- @{
- */
-
-/*
- * ndis.h
- *
- * Modified by Colin O'Flynn <coflynn@newae.com>
- * ntddndis.h modified by Benedikt Spranger <b.spranger@pengutronix.de>
- *
- * Thanks to the cygwin development team,
- * espacially to Casper S. Hornstrup <chorns@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef _LINUX_NDIS_H
-#define _LINUX_NDIS_H
-
-
-#define NDIS_STATUS_MULTICAST_FULL 0xC0010009
-#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A
-#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B
-
-/* from drivers/net/sk98lin/h/skgepnmi.h */
-#define OID_PNP_CAPABILITIES 0xFD010100
-#define OID_PNP_SET_POWER 0xFD010101
-#define OID_PNP_QUERY_POWER 0xFD010102
-#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103
-#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104
-#define OID_PNP_ENABLE_WAKE_UP 0xFD010106
-
-enum NDIS_DEVICE_POWER_STATE {
- NdisDeviceStateUnspecified = 0,
- NdisDeviceStateD0,
- NdisDeviceStateD1,
- NdisDeviceStateD2,
- NdisDeviceStateD3,
- NdisDeviceStateMaximum
-};
-
-struct NDIS_PM_WAKE_UP_CAPABILITIES {
- enum NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
- enum NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
- enum NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
-};
-
-/* NDIS_PNP_CAPABILITIES.Flags constants */
-#define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001
-#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
-#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
-
-/*
-struct NDIS_PNP_CAPABILITIES {
- __le32 Flags;
- struct NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
-};
-
-struct NDIS_PM_PACKET_PATTERN {
- __le32 Priority;
- __le32 Reserved;
- __le32 MaskSize;
- __le32 PatternOffset;
- __le32 PatternSize;
- __le32 PatternFlags;
-};
-*/
-
-/* Required Object IDs (OIDs) */
-#define OID_GEN_SUPPORTED_LIST 0x00010101
-#define OID_GEN_HARDWARE_STATUS 0x00010102
-#define OID_GEN_MEDIA_SUPPORTED 0x00010103
-#define OID_GEN_MEDIA_IN_USE 0x00010104
-#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
-#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
-#define OID_GEN_LINK_SPEED 0x00010107
-#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
-#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
-#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
-#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
-#define OID_GEN_VENDOR_ID 0x0001010C
-#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
-#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
-#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
-#define OID_GEN_DRIVER_VERSION 0x00010110
-#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
-#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
-#define OID_GEN_MAC_OPTIONS 0x00010113
-#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
-#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
-#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
-#define OID_GEN_SUPPORTED_GUIDS 0x00010117
-#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118
-#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119
-#define OID_GEN_MACHINE_NAME 0x0001021A
-#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B
-#define OID_GEN_VLAN_ID 0x0001021C
-
-/* Optional OIDs */
-#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
-#define OID_GEN_PHYSICAL_MEDIUM 0x00010202
-
-/* Required statistics OIDs */
-#define OID_GEN_XMIT_OK 0x00020101
-#define OID_GEN_RCV_OK 0x00020102
-#define OID_GEN_XMIT_ERROR 0x00020103
-#define OID_GEN_RCV_ERROR 0x00020104
-#define OID_GEN_RCV_NO_BUFFER 0x00020105
-
-/* Optional statistics OIDs */
-#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
-#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
-#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
-#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
-#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
-#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
-#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
-#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
-#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
-#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
-#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
-#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
-#define OID_GEN_RCV_CRC_ERROR 0x0002020D
-#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E
-#define OID_GEN_GET_TIME_CAPS 0x0002020F
-#define OID_GEN_GET_NETCARD_TIME 0x00020210
-#define OID_GEN_NETCARD_LOAD 0x00020211
-#define OID_GEN_DEVICE_PROFILE 0x00020212
-#define OID_GEN_INIT_TIME_MS 0x00020213
-#define OID_GEN_RESET_COUNTS 0x00020214
-#define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215
-#define OID_GEN_FRIENDLY_NAME 0x00020216
-#define OID_GEN_MINIPORT_INFO 0x00020217
-#define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218
-
-/* IEEE 802.3 (Ethernet) OIDs */
-#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
-
-#define OID_802_3_PERMANENT_ADDRESS 0x01010101
-#define OID_802_3_CURRENT_ADDRESS 0x01010102
-#define OID_802_3_MULTICAST_LIST 0x01010103
-#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
-#define OID_802_3_MAC_OPTIONS 0x01010105
-#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
-#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
-#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
-#define OID_802_3_XMIT_DEFERRED 0x01020201
-#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
-#define OID_802_3_RCV_OVERRUN 0x01020203
-#define OID_802_3_XMIT_UNDERRUN 0x01020204
-#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
-#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
-#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
-
-/* Wireless LAN OIDs */
-/* Mandatory */
-#define OID_802_11_BSSID 0x0D010101 /* Q S */
-#define OID_802_11_SSID 0x0D010102 /* Q S */
-#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 /* Q S */
-#define OID_802_11_RSSI 0x0D010206 /* Q I */
-#define OID_802_11_BSSID_LIST 0x0D010217 /* Q */
-#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A /* S */
-#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 /* Q S */
-#define OID_802_11_SUPPORTED_RATES 0x0D01020E /* Q */
-#define OID_802_11_CONFIGURATION 0x0D010211 /* Q S */
-#define OID_802_11_ADD_WEP 0x0D010113 /* S */
-#define OID_802_11_WEP_STATUS 0x0D01011B /* Q S */
-#define OID_802_11_REMOVE_WEP 0x0D010114 /* S */
-#define OID_802_11_DISASSOCIATE 0x0D010115 /* S */
-#define OID_802_11_AUTHENTICATION_MODE 0x0D010118 /* Q S */
-#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C /* S */
-
-
-
-/* OID_GEN_MINIPORT_INFO constants */
-#define NDIS_MINIPORT_BUS_MASTER 0x00000001
-#define NDIS_MINIPORT_WDM_DRIVER 0x00000002
-#define NDIS_MINIPORT_SG_LIST 0x00000004
-#define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008
-#define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010
-#define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020
-#define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040
-#define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080
-#define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100
-#define NDIS_MINIPORT_IS_NDIS_5 0x00000200
-#define NDIS_MINIPORT_IS_CO 0x00000400
-#define NDIS_MINIPORT_DESERIALIZE 0x00000800
-#define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000
-#define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000
-#define NDIS_MINIPORT_NETBOOT_CARD 0x00004000
-#define NDIS_MINIPORT_PM_SUPPORTED 0x00008000
-#define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000
-#define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000
-#define NDIS_MINIPORT_HIDDEN 0x00040000
-#define NDIS_MINIPORT_SWENUM 0x00080000
-#define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000
-#define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000
-#define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000
-#define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000
-#define NDIS_MINIPORT_64BITS_DMA 0x01000000
-
-#define NDIS_MEDIUM_802_3 0x00000000
-#define NDIS_MEDIUM_802_5 0x00000001
-#define NDIS_MEDIUM_FDDI 0x00000002
-#define NDIS_MEDIUM_WAN 0x00000003
-#define NDIS_MEDIUM_LOCAL_TALK 0x00000004
-#define NDIS_MEDIUM_DIX 0x00000005
-#define NDIS_MEDIUM_ARCENT_RAW 0x00000006
-#define NDIS_MEDIUM_ARCENT_878_2 0x00000007
-#define NDIS_MEDIUM_ATM 0x00000008
-#define NDIS_MEDIUM_WIRELESS_LAN 0x00000009
-#define NDIS_MEDIUM_IRDA 0x0000000A
-#define NDIS_MEDIUM_BPC 0x0000000B
-#define NDIS_MEDIUM_CO_WAN 0x0000000C
-#define NDIS_MEDIUM_1394 0x0000000D
-
-#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
-#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
-#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
-#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
-#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
-#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
-#define NDIS_PACKET_TYPE_SMT 0x00000040
-#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
-#define NDIS_PACKET_TYPE_GROUP 0x00000100
-#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00000200
-#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00000400
-#define NDIS_PACKET_TYPE_MAC_FRAME 0x00000800
-
-#define NDIS_MEDIA_STATE_CONNECTED 0x00000000
-#define NDIS_MEDIA_STATE_DISCONNECTED 0x00000001
-
-#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
-#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
-#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
-#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
-#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
-#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
-#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
-#define NDIS_MAC_OPTION_RESERVED 0x80000000
-
-#endif /* _LINUX_NDIS_H */
-
-/** @} */
diff --git a/tinyusb/lib/networking/rndis_protocol.h b/tinyusb/lib/networking/rndis_protocol.h
deleted file mode 100755
index b45860ee..00000000
--- a/tinyusb/lib/networking/rndis_protocol.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
- * \file rndis_protocol.h
- * RNDIS Defines
- *
- * \author
- * Colin O'Flynn <coflynn@newae.com>
- *
- * \addtogroup usbstick
- */
-
-/* Copyright (c) 2008 Colin O'Flynn
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of the copyright holders nor the names of
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _RNDIS_H
-#define _RNDIS_H
-
-/**
- \addtogroup RNDIS
- @{
- */
-
-#include <stdint.h>
-
-#define RNDIS_MAJOR_VERSION 1
-#define RNDIS_MINOR_VERSION 0
-
-#define RNDIS_STATUS_SUCCESS 0X00000000
-#define RNDIS_STATUS_FAILURE 0XC0000001
-#define RNDIS_STATUS_INVALID_DATA 0XC0010015
-#define RNDIS_STATUS_NOT_SUPPORTED 0XC00000BB
-#define RNDIS_STATUS_MEDIA_CONNECT 0X4001000B
-#define RNDIS_STATUS_MEDIA_DISCONNECT 0X4001000C
-
-
-/* Message set for Connectionless (802.3) Devices */
-#define REMOTE_NDIS_PACKET_MSG 0x00000001
-#define REMOTE_NDIS_INITIALIZE_MSG 0X00000002
-#define REMOTE_NDIS_HALT_MSG 0X00000003
-#define REMOTE_NDIS_QUERY_MSG 0X00000004
-#define REMOTE_NDIS_SET_MSG 0X00000005
-#define REMOTE_NDIS_RESET_MSG 0X00000006
-#define REMOTE_NDIS_INDICATE_STATUS_MSG 0X00000007
-#define REMOTE_NDIS_KEEPALIVE_MSG 0X00000008
-#define REMOTE_NDIS_INITIALIZE_CMPLT 0X80000002
-#define REMOTE_NDIS_QUERY_CMPLT 0X80000004
-#define REMOTE_NDIS_SET_CMPLT 0X80000005
-#define REMOTE_NDIS_RESET_CMPLT 0X80000006
-#define REMOTE_NDIS_KEEPALIVE_CMPLT 0X80000008
-
-typedef uint32_t rndis_MessageType_t;
-typedef uint32_t rndis_MessageLength_t;
-typedef uint32_t rndis_RequestId_t;
-typedef uint32_t rndis_MajorVersion_t;
-typedef uint32_t rndis_MinorVersion_t;
-typedef uint32_t rndis_MaxTransferSize_t;
-typedef uint32_t rndis_Status_t;
-
-
-/* Device Flags */
-#define RNDIS_DF_CONNECTIONLESS 0x00000001
-#define RNDIS_DF_CONNECTION_ORIENTED 0x00000002
-typedef uint32_t rndis_DeviceFlags_t;
-
-/* Mediums */
-#define RNDIS_MEDIUM_802_3 0x00000000
-typedef uint32_t rndis_Medium_t;
-
-
-typedef uint32_t rndis_MaxPacketsPerTransfer_t;
-typedef uint32_t rndis_PacketAlignmentFactor_t;
-typedef uint32_t rndis_AfListOffset_t;
-typedef uint32_t rndis_AfListSize_t;
-
-/*** Remote NDIS Generic Message type ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- } rndis_generic_msg_t;
-
-
-/*** Remote NDIS Initialize Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_MajorVersion_t MajorVersion;
- rndis_MinorVersion_t MinorVersion;
- rndis_MaxTransferSize_t MaxTransferSize;
- } rndis_initialize_msg_t;
-
-/* Response: */
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Status_t Status;
- rndis_MajorVersion_t MajorVersion;
- rndis_MinorVersion_t MinorVersion;
- rndis_DeviceFlags_t DeviceFlags;
- rndis_Medium_t Medium;
- rndis_MaxPacketsPerTransfer_t MaxPacketsPerTransfer;
- rndis_MaxTransferSize_t MaxTransferSize;
- rndis_PacketAlignmentFactor_t PacketAlignmentFactor;
- rndis_AfListOffset_t AfListOffset;
- rndis_AfListSize_t AfListSize;
- } rndis_initialize_cmplt_t;
-
-
-/*** Remote NDIS Halt Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- } rndis_halt_msg_t;
-
-typedef uint32_t rndis_Oid_t;
-typedef uint32_t rndis_InformationBufferLength_t;
-typedef uint32_t rndis_InformationBufferOffset_t;
-typedef uint32_t rndis_DeviceVcHandle_t;
-
-/*** Remote NDIS Query Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Oid_t Oid;
- rndis_InformationBufferLength_t InformationBufferLength;
- rndis_InformationBufferOffset_t InformationBufferOffset;
- rndis_DeviceVcHandle_t DeviceVcHandle;
- } rndis_query_msg_t;
-
-/* Response: */
-
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Status_t Status;
- rndis_InformationBufferLength_t InformationBufferLength;
- rndis_InformationBufferOffset_t InformationBufferOffset;
- } rndis_query_cmplt_t;
-
-/*** Remote NDIS Set Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Oid_t Oid;
- rndis_InformationBufferLength_t InformationBufferLength;
- rndis_InformationBufferOffset_t InformationBufferOffset;
- rndis_DeviceVcHandle_t DeviceVcHandle;
- } rndis_set_msg_t;
-
-/* Response */
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Status_t Status;
- }rndis_set_cmplt_t;
-
-/* Information buffer layout for OID_GEN_RNDIS_CONFIG_PARAMETER */
-typedef uint32_t rndis_ParameterNameOffset_t;
-typedef uint32_t rndis_ParameterNameLength_t;
-typedef uint32_t rndis_ParameterType_t;
-typedef uint32_t rndis_ParameterValueOffset_t;
-typedef uint32_t rndis_ParameterValueLength_t;
-
-#define PARAMETER_TYPE_STRING 2
-#define PARAMETER_TYPE_NUMERICAL 0
-
-typedef struct{
- rndis_ParameterNameOffset_t ParameterNameOffset;
- rndis_ParameterNameLength_t ParameterNameLength;
- rndis_ParameterType_t ParameterType;
- rndis_ParameterValueOffset_t ParameterValueOffset;
- rndis_ParameterValueLength_t ParameterValueLength;
- }rndis_config_parameter_t;
-
-typedef uint32_t rndis_Reserved_t;
-
-/*** Remote NDIS Soft Reset Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_Reserved_t Reserved;
- } rndis_reset_msg_t;
-
-typedef uint32_t rndis_AddressingReset_t;
-
-/* Response: */
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_Status_t Status;
- rndis_AddressingReset_t AddressingReset;
- } rndis_reset_cmplt_t;
-
-/*** Remote NDIS Indicate Status Message ***/
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_Status_t Status;
- rndis_Status_t StatusBufferLength;
- rndis_Status_t StatusBufferOffset;
- } rndis_indicate_status_t;
-
-typedef uint32_t rndis_DiagStatus_t;
-typedef uint32_t rndis_ErrorOffset_t;
-
-typedef struct {
- rndis_DiagStatus_t DiagStatus;
- rndis_ErrorOffset_t ErrorOffset;
- }rndis_diagnostic_info_t;
-
-/*** Remote NDIS Keepalive Message */
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- }rndis_keepalive_msg_t;
-
-/* Response: */
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_RequestId_t RequestId;
- rndis_Status_t Status;
- }rndis_keepalive_cmplt_t;
-
-/*** Remote NDIS Data Packet ***/
-
-typedef uint32_t rndis_DataOffset_t;
-typedef uint32_t rndis_DataLength_t;
-typedef uint32_t rndis_OOBDataOffset_t;
-typedef uint32_t rndis_OOBDataLength_t;
-typedef uint32_t rndis_NumOOBDataElements_t;
-typedef uint32_t rndis_PerPacketInfoOffset_t;
-typedef uint32_t rndis_PerPacketInfoLength_t;
-
-typedef struct{
- rndis_MessageType_t MessageType;
- rndis_MessageLength_t MessageLength;
- rndis_DataOffset_t DataOffset;
- rndis_DataLength_t DataLength;
- rndis_OOBDataOffset_t OOBDataOffset;
- rndis_OOBDataLength_t OOBDataLength;
- rndis_NumOOBDataElements_t NumOOBDataElements;
- rndis_PerPacketInfoOffset_t PerPacketInfoOffset;
- rndis_PerPacketInfoLength_t PerPacketInfoLength;
- rndis_DeviceVcHandle_t DeviceVcHandle;
- rndis_Reserved_t Reserved;
- }rndis_data_packet_t;
-
-typedef uint32_t rndis_ClassInformationOffset_t;
-typedef uint32_t rndis_Size_t;
-typedef uint32_t rndis_Type_t;
-
-typedef struct{
- rndis_Size_t Size;
- rndis_Type_t Type;
- rndis_ClassInformationOffset_t ClassInformationType;
- }rndis_OOB_packet_t;
-
-#include "ndis.h"
-
-typedef enum rnids_state_e {
- rndis_uninitialized,
- rndis_initialized,
- rndis_data_initialized
- } rndis_state_t;
-
-typedef struct {
- uint32_t txok;
- uint32_t rxok;
- uint32_t txbad;
- uint32_t rxbad;
-} usb_eth_stat_t;
-
-#endif /* _RNDIS_H */
-
-/** @} */
diff --git a/tinyusb/lib/networking/rndis_reports.c b/tinyusb/lib/networking/rndis_reports.c
deleted file mode 100755
index ee611c88..00000000
--- a/tinyusb/lib/networking/rndis_reports.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- The original version of this code was lrndis/usbd_rndis_core.c from https://github.com/fetisov/lrndis
- It has since been overhauled to suit this application
-*/
-
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 by Sergey Fetisov <fsenok@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <stdalign.h>
-#include <string.h>
-#include "class/net/net_device.h"
-#include "rndis_protocol.h"
-#include "netif/ethernet.h"
-
-#define RNDIS_LINK_SPEED 12000000 /* Link baudrate (12Mbit/s for USB-FS) */
-#define RNDIS_VENDOR "TinyUSB" /* NIC vendor name */
-
-static const uint8_t *const station_hwaddr = tud_network_mac_address;
-static const uint8_t *const permanent_hwaddr = tud_network_mac_address;
-
-static usb_eth_stat_t usb_eth_stat = { 0, 0, 0, 0 };
-static uint32_t oid_packet_filter = 0x0000000;
-static rndis_state_t rndis_state;
-
-CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN static uint8_t ndis_report[8] = { 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
-
-static const uint32_t OIDSupportedList[] =
-{
- OID_GEN_SUPPORTED_LIST,
- OID_GEN_HARDWARE_STATUS,
- OID_GEN_MEDIA_SUPPORTED,
- OID_GEN_MEDIA_IN_USE,
- OID_GEN_MAXIMUM_FRAME_SIZE,
- OID_GEN_LINK_SPEED,
- OID_GEN_TRANSMIT_BLOCK_SIZE,
- OID_GEN_RECEIVE_BLOCK_SIZE,
- OID_GEN_VENDOR_ID,
- OID_GEN_VENDOR_DESCRIPTION,
- OID_GEN_VENDOR_DRIVER_VERSION,
- OID_GEN_CURRENT_PACKET_FILTER,
- OID_GEN_MAXIMUM_TOTAL_SIZE,
- OID_GEN_PROTOCOL_OPTIONS,
- OID_GEN_MAC_OPTIONS,
- OID_GEN_MEDIA_CONNECT_STATUS,
- OID_GEN_MAXIMUM_SEND_PACKETS,
- OID_802_3_PERMANENT_ADDRESS,
- OID_802_3_CURRENT_ADDRESS,
- OID_802_3_MULTICAST_LIST,
- OID_802_3_MAXIMUM_LIST_SIZE,
- OID_802_3_MAC_OPTIONS
-};
-
-#define OID_LIST_LENGTH TU_ARRAY_SIZE(OIDSupportedList)
-#define ENC_BUF_SIZE (OID_LIST_LENGTH * 4 + 32)
-
-static void *encapsulated_buffer;
-
-static void rndis_report(void)
-{
- netd_report(ndis_report, sizeof(ndis_report));
-}
-
-static void rndis_query_cmplt32(int status, uint32_t data)
-{
- rndis_query_cmplt_t *c;
- c = (rndis_query_cmplt_t *)encapsulated_buffer;
- c->MessageType = REMOTE_NDIS_QUERY_CMPLT;
- c->MessageLength = sizeof(rndis_query_cmplt_t) + 4;
- c->InformationBufferLength = 4;
- c->InformationBufferOffset = 16;
- c->Status = status;
- memcpy(c + 1, &data, sizeof(data));
- rndis_report();
-}
-
-static void rndis_query_cmplt(int status, const void *data, int size)
-{
- rndis_query_cmplt_t *c;
- c = (rndis_query_cmplt_t *)encapsulated_buffer;
- c->MessageType = REMOTE_NDIS_QUERY_CMPLT;
- c->MessageLength = sizeof(rndis_query_cmplt_t) + size;
- c->InformationBufferLength = size;
- c->InformationBufferOffset = 16;
- c->Status = status;
- memcpy(c + 1, data, size);
- rndis_report();
-}
-
-#define MAC_OPT NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA | \
- NDIS_MAC_OPTION_RECEIVE_SERIALIZED | \
- NDIS_MAC_OPTION_TRANSFERS_NOT_PEND | \
- NDIS_MAC_OPTION_NO_LOOPBACK
-
-static const char *rndis_vendor = RNDIS_VENDOR;
-
-static void rndis_query(void)
-{
- switch (((rndis_query_msg_t *)encapsulated_buffer)->Oid)
- {
- case OID_GEN_SUPPORTED_LIST: rndis_query_cmplt(RNDIS_STATUS_SUCCESS, OIDSupportedList, 4 * OID_LIST_LENGTH); return;
- case OID_GEN_VENDOR_DRIVER_VERSION: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0x00001000); return;
- case OID_802_3_CURRENT_ADDRESS: rndis_query_cmplt(RNDIS_STATUS_SUCCESS, station_hwaddr, 6); return;
- case OID_802_3_PERMANENT_ADDRESS: rndis_query_cmplt(RNDIS_STATUS_SUCCESS, permanent_hwaddr, 6); return;
- case OID_GEN_MEDIA_SUPPORTED: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, NDIS_MEDIUM_802_3); return;
- case OID_GEN_MEDIA_IN_USE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, NDIS_MEDIUM_802_3); return;
- case OID_GEN_PHYSICAL_MEDIUM: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, NDIS_MEDIUM_802_3); return;
- case OID_GEN_HARDWARE_STATUS: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- case OID_GEN_LINK_SPEED: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, RNDIS_LINK_SPEED / 100); return;
- case OID_GEN_VENDOR_ID: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0x00FFFFFF); return;
- case OID_GEN_VENDOR_DESCRIPTION: rndis_query_cmplt(RNDIS_STATUS_SUCCESS, rndis_vendor, strlen(rndis_vendor) + 1); return;
- case OID_GEN_CURRENT_PACKET_FILTER: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, oid_packet_filter); return;
- case OID_GEN_MAXIMUM_FRAME_SIZE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, CFG_TUD_NET_MTU - SIZEOF_ETH_HDR); return;
- case OID_GEN_MAXIMUM_TOTAL_SIZE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, CFG_TUD_NET_MTU); return;
- case OID_GEN_TRANSMIT_BLOCK_SIZE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, CFG_TUD_NET_MTU); return;
- case OID_GEN_RECEIVE_BLOCK_SIZE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, CFG_TUD_NET_MTU); return;
- case OID_GEN_MEDIA_CONNECT_STATUS: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, NDIS_MEDIA_STATE_CONNECTED); return;
- case OID_GEN_RNDIS_CONFIG_PARAMETER: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- case OID_802_3_MAXIMUM_LIST_SIZE: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 1); return;
- case OID_802_3_MULTICAST_LIST: rndis_query_cmplt32(RNDIS_STATUS_NOT_SUPPORTED, 0); return;
- case OID_802_3_MAC_OPTIONS: rndis_query_cmplt32(RNDIS_STATUS_NOT_SUPPORTED, 0); return;
- case OID_GEN_MAC_OPTIONS: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, /*MAC_OPT*/ 0); return;
- case OID_802_3_RCV_ERROR_ALIGNMENT: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- case OID_802_3_XMIT_ONE_COLLISION: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- case OID_802_3_XMIT_MORE_COLLISIONS: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- case OID_GEN_XMIT_OK: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, usb_eth_stat.txok); return;
- case OID_GEN_RCV_OK: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, usb_eth_stat.rxok); return;
- case OID_GEN_RCV_ERROR: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, usb_eth_stat.rxbad); return;
- case OID_GEN_XMIT_ERROR: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, usb_eth_stat.txbad); return;
- case OID_GEN_RCV_NO_BUFFER: rndis_query_cmplt32(RNDIS_STATUS_SUCCESS, 0); return;
- default: rndis_query_cmplt(RNDIS_STATUS_FAILURE, NULL, 0); return;
- }
-}
-
-#define INFBUF ((uint8_t *)&(m->RequestId) + m->InformationBufferOffset)
-
-static void rndis_handle_config_parm(const char *data, int keyoffset, int valoffset, int keylen, int vallen)
-{
- (void)data;
- (void)keyoffset;
- (void)valoffset;
- (void)keylen;
- (void)vallen;
-}
-
-static void rndis_packetFilter(uint32_t newfilter)
-{
- (void)newfilter;
-}
-
-static void rndis_handle_set_msg(void)
-{
- rndis_set_cmplt_t *c;
- rndis_set_msg_t *m;
- rndis_Oid_t oid;
-
- c = (rndis_set_cmplt_t *)encapsulated_buffer;
- m = (rndis_set_msg_t *)encapsulated_buffer;
-
- oid = m->Oid;
- c->MessageType = REMOTE_NDIS_SET_CMPLT;
- c->MessageLength = sizeof(rndis_set_cmplt_t);
- c->Status = RNDIS_STATUS_SUCCESS;
-
- switch (oid)
- {
- /* Parameters set up in 'Advanced' tab */
- case OID_GEN_RNDIS_CONFIG_PARAMETER:
- {
- rndis_config_parameter_t *p;
- char *ptr = (char *)m;
- ptr += sizeof(rndis_generic_msg_t);
- ptr += m->InformationBufferOffset;
- p = (rndis_config_parameter_t *) ((void*) ptr);
- rndis_handle_config_parm(ptr, p->ParameterNameOffset, p->ParameterValueOffset, p->ParameterNameLength, p->ParameterValueLength);
- }
- break;
-
- /* Mandatory general OIDs */
- case OID_GEN_CURRENT_PACKET_FILTER:
- memcpy(&oid_packet_filter, INFBUF, 4);
- if (oid_packet_filter)
- {
- rndis_packetFilter(oid_packet_filter);
- rndis_state = rndis_data_initialized;
- }
- else
- {
- rndis_state = rndis_initialized;
- }
- break;
-
- case OID_GEN_CURRENT_LOOKAHEAD:
- break;
-
- case OID_GEN_PROTOCOL_OPTIONS:
- break;
-
- /* Mandatory 802_3 OIDs */
- case OID_802_3_MULTICAST_LIST:
- break;
-
- /* Power Managment: fails for now */
- case OID_PNP_ADD_WAKE_UP_PATTERN:
- case OID_PNP_REMOVE_WAKE_UP_PATTERN:
- case OID_PNP_ENABLE_WAKE_UP:
- default:
- c->Status = RNDIS_STATUS_FAILURE;
- break;
- }
-
- /* c->MessageID is same as before */
- rndis_report();
- return;
-}
-
-void rndis_class_set_handler(uint8_t *data, int size)
-{
- encapsulated_buffer = data;
- (void)size;
-
- switch (((rndis_generic_msg_t *)encapsulated_buffer)->MessageType)
- {
- case REMOTE_NDIS_INITIALIZE_MSG:
- {
- rndis_initialize_cmplt_t *m;
- m = ((rndis_initialize_cmplt_t *)encapsulated_buffer);
- /* m->MessageID is same as before */
- m->MessageType = REMOTE_NDIS_INITIALIZE_CMPLT;
- m->MessageLength = sizeof(rndis_initialize_cmplt_t);
- m->MajorVersion = RNDIS_MAJOR_VERSION;
- m->MinorVersion = RNDIS_MINOR_VERSION;
- m->Status = RNDIS_STATUS_SUCCESS;
- m->DeviceFlags = RNDIS_DF_CONNECTIONLESS;
- m->Medium = RNDIS_MEDIUM_802_3;
- m->MaxPacketsPerTransfer = 1;
- m->MaxTransferSize = CFG_TUD_NET_MTU + sizeof(rndis_data_packet_t);
- m->PacketAlignmentFactor = 0;
- m->AfListOffset = 0;
- m->AfListSize = 0;
- rndis_state = rndis_initialized;
- rndis_report();
- }
- break;
-
- case REMOTE_NDIS_QUERY_MSG:
- rndis_query();
- break;
-
- case REMOTE_NDIS_SET_MSG:
- rndis_handle_set_msg();
- break;
-
- case REMOTE_NDIS_RESET_MSG:
- {
- rndis_reset_cmplt_t * m;
- m = ((rndis_reset_cmplt_t *)encapsulated_buffer);
- rndis_state = rndis_uninitialized;
- m->MessageType = REMOTE_NDIS_RESET_CMPLT;
- m->MessageLength = sizeof(rndis_reset_cmplt_t);
- m->Status = RNDIS_STATUS_SUCCESS;
- m->AddressingReset = 1; /* Make it look like we did something */
- /* m->AddressingReset = 0; - Windows halts if set to 1 for some reason */
- rndis_report();
- }
- break;
-
- case REMOTE_NDIS_KEEPALIVE_MSG:
- {
- rndis_keepalive_cmplt_t * m;
- m = (rndis_keepalive_cmplt_t *)encapsulated_buffer;
- m->MessageType = REMOTE_NDIS_KEEPALIVE_CMPLT;
- m->MessageLength = sizeof(rndis_keepalive_cmplt_t);
- m->Status = RNDIS_STATUS_SUCCESS;
- }
- /* We have data to send back */
- rndis_report();
- break;
-
- default:
- break;
- }
-}