mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-08-23 06:35:57 +00:00
Work on task #14587: Create common header for IANA assigned numbers
Create include/lwip/prot/iana.h Move DHCP and ARP #define in there
This commit is contained in:
parent
42fd01547d
commit
629ec98dd8
|
@ -78,6 +78,7 @@
|
||||||
#include "lwip/dns.h"
|
#include "lwip/dns.h"
|
||||||
#include "lwip/etharp.h"
|
#include "lwip/etharp.h"
|
||||||
#include "lwip/prot/dhcp.h"
|
#include "lwip/prot/dhcp.h"
|
||||||
|
#include "lwip/prot/iana.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -1908,7 +1909,7 @@ dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type, u16_t
|
||||||
|
|
||||||
msg_out->op = DHCP_BOOTREQUEST;
|
msg_out->op = DHCP_BOOTREQUEST;
|
||||||
/* @todo: make link layer independent */
|
/* @todo: make link layer independent */
|
||||||
msg_out->htype = DHCP_HTYPE_ETH;
|
msg_out->htype = IANA_HWTYPE_ETHERNET;
|
||||||
msg_out->hlen = netif->hwaddr_len;
|
msg_out->hlen = netif->hwaddr_len;
|
||||||
msg_out->xid = lwip_htonl(dhcp->xid);
|
msg_out->xid = lwip_htonl(dhcp->xid);
|
||||||
/* we don't need the broadcast flag since we can receive unicast traffic
|
/* we don't need the broadcast flag since we can receive unicast traffic
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include "lwip/snmp.h"
|
#include "lwip/snmp.h"
|
||||||
#include "lwip/dhcp.h"
|
#include "lwip/dhcp.h"
|
||||||
#include "lwip/autoip.h"
|
#include "lwip/autoip.h"
|
||||||
|
#include "lwip/prot/iana.h"
|
||||||
#include "netif/ethernet.h"
|
#include "netif/ethernet.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -650,7 +651,7 @@ etharp_input(struct pbuf *p, struct netif *netif)
|
||||||
hdr = (struct etharp_hdr *)p->payload;
|
hdr = (struct etharp_hdr *)p->payload;
|
||||||
|
|
||||||
/* RFC 826 "Packet Reception": */
|
/* RFC 826 "Packet Reception": */
|
||||||
if ((hdr->hwtype != PP_HTONS(HWTYPE_ETHERNET)) ||
|
if ((hdr->hwtype != PP_HTONS(IANA_HWTYPE_ETHERNET)) ||
|
||||||
(hdr->hwlen != ETH_HWADDR_LEN) ||
|
(hdr->hwlen != ETH_HWADDR_LEN) ||
|
||||||
(hdr->protolen != sizeof(ip4_addr_t)) ||
|
(hdr->protolen != sizeof(ip4_addr_t)) ||
|
||||||
(hdr->proto != PP_HTONS(ETHTYPE_IP))) {
|
(hdr->proto != PP_HTONS(ETHTYPE_IP))) {
|
||||||
|
@ -1139,7 +1140,7 @@ etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr,
|
||||||
IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->sipaddr, ipsrc_addr);
|
IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->sipaddr, ipsrc_addr);
|
||||||
IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->dipaddr, ipdst_addr);
|
IPADDR_WORDALIGNED_COPY_FROM_IP4_ADDR_T(&hdr->dipaddr, ipdst_addr);
|
||||||
|
|
||||||
hdr->hwtype = PP_HTONS(HWTYPE_ETHERNET);
|
hdr->hwtype = PP_HTONS(IANA_HWTYPE_ETHERNET);
|
||||||
hdr->proto = PP_HTONS(ETHTYPE_IP);
|
hdr->proto = PP_HTONS(ETHTYPE_IP);
|
||||||
/* set hwlen and protolen */
|
/* set hwlen and protolen */
|
||||||
hdr->hwlen = ETH_HWADDR_LEN;
|
hdr->hwlen = ETH_HWADDR_LEN;
|
||||||
|
|
|
@ -128,9 +128,6 @@ typedef enum {
|
||||||
#define DHCP_RELEASE 7
|
#define DHCP_RELEASE 7
|
||||||
#define DHCP_INFORM 8
|
#define DHCP_INFORM 8
|
||||||
|
|
||||||
/** DHCP hardware type, currently only ethernet is supported */
|
|
||||||
#define DHCP_HTYPE_ETH 1
|
|
||||||
|
|
||||||
#define DHCP_MAGIC_COOKIE 0x63825363UL
|
#define DHCP_MAGIC_COOKIE 0x63825363UL
|
||||||
|
|
||||||
/* This is a list of options for BOOTP and DHCP, see RFC 2132 for descriptions */
|
/* This is a list of options for BOOTP and DHCP, see RFC 2132 for descriptions */
|
||||||
|
|
|
@ -101,12 +101,6 @@ PACK_STRUCT_END
|
||||||
|
|
||||||
#define SIZEOF_ETHARP_HDR 28
|
#define SIZEOF_ETHARP_HDR 28
|
||||||
|
|
||||||
/* ARP hwtype values */
|
|
||||||
enum etharp_hwtype {
|
|
||||||
HWTYPE_ETHERNET = 1
|
|
||||||
/* others not used */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ARP message types (opcodes) */
|
/* ARP message types (opcodes) */
|
||||||
enum etharp_opcode {
|
enum etharp_opcode {
|
||||||
ARP_REQUEST = 1,
|
ARP_REQUEST = 1,
|
||||||
|
|
51
src/include/lwip/prot/iana.h
Normal file
51
src/include/lwip/prot/iana.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* IANA assigned numbers
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 Dirk Ziegelmeier.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
* are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* 2. 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.
|
||||||
|
* 3. The name of the author may not be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
|
||||||
|
*
|
||||||
|
* This file is part of the lwIP TCP/IP stack.
|
||||||
|
*
|
||||||
|
* Author: Dirk Ziegelmeier <dziegel@gmx.de>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LWIP_HDR_PROT_IANA_H
|
||||||
|
#define LWIP_HDR_PROT_IANA_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define IANA_HWTYPE_ETHERNET 1
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* LWIP_HDR_PROT_IANA_H */
|
|
@ -4,6 +4,7 @@
|
||||||
#include "lwip/etharp.h"
|
#include "lwip/etharp.h"
|
||||||
#include "netif/ethernet.h"
|
#include "netif/ethernet.h"
|
||||||
#include "lwip/stats.h"
|
#include "lwip/stats.h"
|
||||||
|
#include "lwip/prot/iana.h"
|
||||||
|
|
||||||
#if !LWIP_STATS || !UDP_STATS || !MEMP_STATS || !ETHARP_STATS
|
#if !LWIP_STATS || !UDP_STATS || !MEMP_STATS || !ETHARP_STATS
|
||||||
#error "This tests needs UDP-, MEMP- and ETHARP-statistics enabled"
|
#error "This tests needs UDP-, MEMP- and ETHARP-statistics enabled"
|
||||||
|
@ -89,7 +90,7 @@ create_arp_response(ip4_addr_t *adr)
|
||||||
ethhdr->src = test_ethaddr2;
|
ethhdr->src = test_ethaddr2;
|
||||||
ethhdr->type = htons(ETHTYPE_ARP);
|
ethhdr->type = htons(ETHTYPE_ARP);
|
||||||
|
|
||||||
etharphdr->hwtype = htons(/*HWTYPE_ETHERNET*/ 1);
|
etharphdr->hwtype = htons(IANA_HWTYPE_ETHERNET);
|
||||||
etharphdr->proto = htons(ETHTYPE_IP);
|
etharphdr->proto = htons(ETHTYPE_IP);
|
||||||
etharphdr->hwlen = ETHARP_HWADDR_LEN;
|
etharphdr->hwlen = ETHARP_HWADDR_LEN;
|
||||||
etharphdr->protolen = sizeof(ip4_addr_t);
|
etharphdr->protolen = sizeof(ip4_addr_t);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user