qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/7] slirp: Move BOOTP/DHCP protocol defines to a se


From: Fedor Lyakhov
Subject: [Qemu-devel] [PATCH 1/7] slirp: Move BOOTP/DHCP protocol defines to a separate header
Date: Sat, 26 Apr 2014 02:10:57 +0400

Current slirp/bootp.h is bloated - it contains both BOOTP/DHCP protocol
definitions and implementation-related structs. Protocol definitions are needed
in other modules, but the structs are unwanted there as introducing unrelated
dependency. To solve this issue, bootp.h is split into two files:
 - bootp_defines.h contains only plain protocol defines
 - bootp.h (includes bootp_defines.h) contains everything else used in bootp.c
Common BOOTP/DHCP defines are used in slirp/dnssearch.c instead of local ones.

Signed-off-by: Fedor Lyakhov <address@hidden>
---
 slirp/bootp.h         | 95 ++----------------------------------------------
 slirp/bootp_defines.h | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++
 slirp/dnssearch.c     |  3 +-
 3 files changed, 103 insertions(+), 94 deletions(-)
 create mode 100644 slirp/bootp_defines.h

diff --git a/slirp/bootp.h b/slirp/bootp.h
index ec3b687..f2e7954 100644
--- a/slirp/bootp.h
+++ b/slirp/bootp.h
@@ -2,97 +2,8 @@
 #ifndef SLIRP_BOOTP_H
 #define SLIRP_BOOTP_H 1
 
-#define BOOTP_SERVER   67
-#define BOOTP_CLIENT   68
-
-#define BOOTP_REQUEST  1
-#define BOOTP_REPLY    2
-
-#define RFC1533_COOKIE         99, 130, 83, 99
-#define RFC1533_PAD            0
-#define RFC1533_NETMASK                1
-#define RFC1533_TIMEOFFSET     2
-#define RFC1533_GATEWAY                3
-#define RFC1533_TIMESERVER     4
-#define RFC1533_IEN116NS       5
-#define RFC1533_DNS            6
-#define RFC1533_LOGSERVER      7
-#define RFC1533_COOKIESERVER   8
-#define RFC1533_LPRSERVER      9
-#define RFC1533_IMPRESSSERVER  10
-#define RFC1533_RESOURCESERVER 11
-#define RFC1533_HOSTNAME       12
-#define RFC1533_BOOTFILESIZE   13
-#define RFC1533_MERITDUMPFILE  14
-#define RFC1533_DOMAINNAME     15
-#define RFC1533_SWAPSERVER     16
-#define RFC1533_ROOTPATH       17
-#define RFC1533_EXTENSIONPATH  18
-#define RFC1533_IPFORWARDING   19
-#define RFC1533_IPSOURCEROUTING        20
-#define RFC1533_IPPOLICYFILTER 21
-#define RFC1533_IPMAXREASSEMBLY        22
-#define RFC1533_IPTTL          23
-#define RFC1533_IPMTU          24
-#define RFC1533_IPMTUPLATEAU   25
-#define RFC1533_INTMTU         26
-#define RFC1533_INTLOCALSUBNETS        27
-#define RFC1533_INTBROADCAST   28
-#define RFC1533_INTICMPDISCOVER        29
-#define RFC1533_INTICMPRESPOND 30
-#define RFC1533_INTROUTEDISCOVER 31
-#define RFC1533_INTROUTESOLICIT        32
-#define RFC1533_INTSTATICROUTES        33
-#define RFC1533_LLTRAILERENCAP 34
-#define RFC1533_LLARPCACHETMO  35
-#define RFC1533_LLETHERNETENCAP        36
-#define RFC1533_TCPTTL         37
-#define RFC1533_TCPKEEPALIVETMO        38
-#define RFC1533_TCPKEEPALIVEGB 39
-#define RFC1533_NISDOMAIN      40
-#define RFC1533_NISSERVER      41
-#define RFC1533_NTPSERVER      42
-#define RFC1533_VENDOR         43
-#define RFC1533_NBNS           44
-#define RFC1533_NBDD           45
-#define RFC1533_NBNT           46
-#define RFC1533_NBSCOPE                47
-#define RFC1533_XFS            48
-#define RFC1533_XDM            49
-
-#define RFC2132_REQ_ADDR       50
-#define RFC2132_LEASE_TIME      51
-#define RFC2132_MSG_TYPE       53
-#define RFC2132_SRV_ID         54
-#define RFC2132_PARAM_LIST     55
-#define RFC2132_MESSAGE                56
-#define RFC2132_MAX_SIZE       57
-#define RFC2132_RENEWAL_TIME    58
-#define RFC2132_REBIND_TIME     59
-
-#define DHCPDISCOVER           1
-#define DHCPOFFER              2
-#define DHCPREQUEST            3
-#define DHCPACK                        5
-#define DHCPNAK                        6
-
-#define RFC1533_VENDOR_MAJOR   0
-#define RFC1533_VENDOR_MINOR   0
-
-#define RFC1533_VENDOR_MAGIC   128
-#define RFC1533_VENDOR_ADDPARM 129
-#define        RFC1533_VENDOR_ETHDEV   130
-#define RFC1533_VENDOR_HOWTO    132
-#define RFC1533_VENDOR_MNUOPTS 160
-#define RFC1533_VENDOR_SELECTION 176
-#define RFC1533_VENDOR_MOTD    184
-#define RFC1533_VENDOR_NUMOFMOTD 8
-#define RFC1533_VENDOR_IMG     192
-#define RFC1533_VENDOR_NUMOFIMG        16
-
-#define RFC1533_END            255
-#define BOOTP_VENDOR_LEN       64
-#define DHCP_OPT_LEN           312
+#include "bootp_defines.h"
+#include <stdint.h>
 
 struct bootp_t {
     struct ip ip;
@@ -123,4 +34,4 @@ typedef struct {
 
 void bootp_input(struct mbuf *m);
 
-#endif
+#endif /* SLIRP_BOOTP_H */
diff --git a/slirp/bootp_defines.h b/slirp/bootp_defines.h
new file mode 100644
index 0000000..ad64a0d
--- /dev/null
+++ b/slirp/bootp_defines.h
@@ -0,0 +1,99 @@
+#ifndef SLIRP_BOOTP_DEFINES_H
+#define SLIRP_BOOTP_DEFINES_H
+
+#define BOOTP_SERVER 67
+#define BOOTP_CLIENT 68
+
+#define BOOTP_REQUEST 1
+#define BOOTP_REPLY   2
+
+#define RFC1533_COOKIE           99, 130, 83, 99
+#define RFC1533_PAD              0
+#define RFC1533_NETMASK          1
+#define RFC1533_TIMEOFFSET       2
+#define RFC1533_GATEWAY          3
+#define RFC1533_TIMESERVER       4
+#define RFC1533_IEN116NS         5
+#define RFC1533_DNS              6
+#define RFC1533_LOGSERVER        7
+#define RFC1533_COOKIESERVER     8
+#define RFC1533_LPRSERVER        9
+#define RFC1533_IMPRESSSERVER    10
+#define RFC1533_RESOURCESERVER   11
+#define RFC1533_HOSTNAME         12
+#define RFC1533_BOOTFILESIZE     13
+#define RFC1533_MERITDUMPFILE    14
+#define RFC1533_DOMAINNAME       15
+#define RFC1533_SWAPSERVER       16
+#define RFC1533_ROOTPATH         17
+#define RFC1533_EXTENSIONPATH    18
+#define RFC1533_IPFORWARDING     19
+#define RFC1533_IPSOURCEROUTING  20
+#define RFC1533_IPPOLICYFILTER   21
+#define RFC1533_IPMAXREASSEMBLY  22
+#define RFC1533_IPTTL            23
+#define RFC1533_IPMTU            24
+#define RFC1533_IPMTUPLATEAU     25
+#define RFC1533_INTMTU           26
+#define RFC1533_INTLOCALSUBNETS  27
+#define RFC1533_INTBROADCAST     28
+#define RFC1533_INTICMPDISCOVER  29
+#define RFC1533_INTICMPRESPOND   30
+#define RFC1533_INTROUTEDISCOVER 31
+#define RFC1533_INTROUTESOLICIT  32
+#define RFC1533_INTSTATICROUTES  33
+#define RFC1533_LLTRAILERENCAP   34
+#define RFC1533_LLARPCACHETMO    35
+#define RFC1533_LLETHERNETENCAP  36
+#define RFC1533_TCPTTL           37
+#define RFC1533_TCPKEEPALIVETMO  38
+#define RFC1533_TCPKEEPALIVEGB   39
+#define RFC1533_NISDOMAIN        40
+#define RFC1533_NISSERVER        41
+#define RFC1533_NTPSERVER        42
+#define RFC1533_VENDOR           43
+#define RFC1533_NBNS             44
+#define RFC1533_NBDD             45
+#define RFC1533_NBNT             46
+#define RFC1533_NBSCOPE          47
+#define RFC1533_XFS              48
+#define RFC1533_XDM              49
+
+#define RFC2132_REQ_ADDR     50
+#define RFC2132_LEASE_TIME   51
+#define RFC2132_MSG_TYPE     53
+#define RFC2132_SRV_ID       54
+#define RFC2132_PARAM_LIST   55
+#define RFC2132_MESSAGE      56
+#define RFC2132_MAX_SIZE     57
+#define RFC2132_RENEWAL_TIME 58
+#define RFC2132_REBIND_TIME  59
+
+#define DHCPDISCOVER 1
+#define DHCPOFFER    2
+#define DHCPREQUEST  3
+#define DHCPACK      5
+#define DHCPNAK      6
+
+#define RFC1533_VENDOR_MAJOR     0
+#define RFC1533_VENDOR_MINOR     0
+#define RFC1533_VENDOR_MAGIC     128
+#define RFC1533_VENDOR_ADDPARM   129
+#define RFC1533_VENDOR_ETHDEV    130
+#define RFC1533_VENDOR_HOWTO     132
+#define RFC1533_VENDOR_MNUOPTS   160
+#define RFC1533_VENDOR_SELECTION 176
+#define RFC1533_VENDOR_MOTD      184
+#define RFC1533_VENDOR_NUMOFMOTD 8
+#define RFC1533_VENDOR_IMG       192
+#define RFC1533_VENDOR_NUMOFIMG  16
+#define RFC1533_END              255
+
+/* Maximum length of single DHCP option */
+#define MAX_OPT_LEN      255
+/* Length of DHCP option header */
+#define OPT_HEADER_LEN   2
+/* Maximum length of all DHCP options combined */
+#define DHCP_OPT_LEN     312
+
+#endif /* SLIRP_BOOTP_DEFINES_H */
diff --git a/slirp/dnssearch.c b/slirp/dnssearch.c
index 4c9064e..e69859d 100644
--- a/slirp/dnssearch.c
+++ b/slirp/dnssearch.c
@@ -26,11 +26,10 @@
 #include <string.h>
 #include <stdio.h>
 #include <glib.h>
+#include "bootp_defines.h"
 #include "slirp.h"
 
 static const uint8_t RFC3397_OPT_DOMAIN_SEARCH = 119;
-static const uint8_t MAX_OPT_LEN = 255;
-static const uint8_t OPT_HEADER_LEN = 2;
 static const uint8_t REFERENCE_LEN = 2;
 
 struct compact_domain;
-- 
1.8.4.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]