udhcp: add FEATURE_UDHCP_8021Q option
authorNigel Hathaway <Nigel.Hathaway@ubiquisys.com>
Tue, 26 Apr 2011 00:50:00 +0000 (02:50 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 26 Apr 2011 00:50:00 +0000 (02:50 +0200)
function                                             old     new   delta
dhcp_option_strings                                  217     237     +20
dhcp_optflags                                         64      68      +4

Signed-off-by: Nigel Hathaway <Nigel.Hathaway@ubiquisys.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
examples/udhcp/udhcpd.conf
networking/udhcp/Config.src
networking/udhcp/common.c
networking/udhcp/common.h

index 23fc834b7073e31ca5934ef84030d1de0086b4d6..43b49df89c47bf7cab583b4d575d97893d5f59ec 100644 (file)
@@ -90,6 +90,8 @@ option        0x08    01020304        # option 8: "cookie server IP addr: 1.2.3.4"
 #opt wpad       STRING
 #opt serverid   IP             # default: server's IP
 #opt message    STRING         # error message (udhcpd sends it on success too)
+#opt vlanid     NUM            # 802.1P VLAN ID
+#opt vlanpriority NUM          # 802.1Q VLAN priority
 # Options specifying server(s)
 #opt dns        IP_LIST
 #opt wins       IP_LIST
@@ -97,8 +99,15 @@ option       0x08    01020304        # option 8: "cookie server IP addr: 1.2.3.4"
 #opt ntpsrv     IP_LIST
 #opt lprsrv     IP_LIST
 #opt swapsrv    IP
+# Options specifying routes
+#opt routes     IP_PAIR_LIST
 # Obsolete options, no longer supported
 #opt logsrv     IP_LIST        # 704/UDP log server (not syslog!)
 #opt namesrv    IP_LIST        # IEN 116 name server, obsolete (August 1979!!!)
 #opt cookiesrv  IP_LIST        # RFC 865 "quote of the day" server, rarely (never?) used
 #opt timesrv    IP_LIST        # RFC 868 time server, rarely (never?) used
+# TODO: in development
+#opt userclass  STRING         # RFC 3004. set of LASCII strings. "I am a printer" etc
+#opt sipserv    STRING LIST    # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs
+#opt staticroutes   STATIC_ROUTES
+#opt msstaticroutes STATIC_ROUTES
index 9cd8cbbae17a577d8aa5fdb297e15ea528dbaacb..6bfa398ea890ddeca244814dcecb1660b53b645d 100644 (file)
@@ -113,6 +113,14 @@ config FEATURE_UDHCP_RFC3397
          search lists via option 119, specified in RFC 3397,
          and SIP servers option 120, specified in RFC 3361.
 
+config FEATURE_UDHCP_8021Q
+       bool "Support for 802.1Q VLAN parameters"
+       default y
+       depends on UDHCPD || UDHCPC
+       help
+         If selected, both client and server will support passing of VLAN
+         ID and priority via options 132 and 133 as per 802.1Q.
+
 config UDHCPC_DEFAULT_SCRIPT
        string "Absolute path to config script"
        default "/usr/share/udhcpc/default.script"
index 0a60261aba513fbd04e99dae1417b6854f242244..70e34614c96bb0c129c60ebe28a310c36960a732 100644 (file)
@@ -55,6 +55,10 @@ const struct dhcp_optflag dhcp_optflags[] = {
        { OPTION_SIP_SERVERS                      , 0x78 }, /* DHCP_SIP_SERVERS   */
 #endif
        { OPTION_STATIC_ROUTES                    , 0x79 }, /* DHCP_STATIC_ROUTES */
+#if ENABLE_FEATURE_UDHCP_8021Q
+       { OPTION_U16                              , 0x84 }, /* DHCP_VLAN_ID       */
+       { OPTION_U8                               , 0x85 }, /* DHCP_VLAN_PRIORITY */
+#endif
        { OPTION_STATIC_ROUTES                    , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
        { OPTION_STRING                           , 0xfc }, /* DHCP_WPAD          */
 
@@ -118,6 +122,10 @@ const char dhcp_option_strings[] ALIGN1 =
 // doesn't work in udhcpd.conf since OPTION_STATIC_ROUTES
 // is not handled yet by "string->option" conversion code:
        "staticroutes" "\0"/* DHCP_STATIC_ROUTES  */
+#if ENABLE_FEATURE_UDHCP_8021Q
+       "vlanid" "\0"      /* DHCP_VLAN_ID        */
+       "vlanpriority" "\0"/* DHCP_VLAN_PRIORITY  */
+#endif
        "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
        "wpad" "\0"        /* DHCP_WPAD           */
        ;
index f8f18ff0124fb904a6cfa4b0d6c0bb7807a2349a..ad6991c9454a354411deeac939c319a96396282f 100644 (file)
@@ -145,6 +145,8 @@ enum {
 //#define DHCP_DOMAIN_SEARCH    0x77 /* RFC 3397. set of ASCIZ string, DNS-style compressed */
 //#define DHCP_SIP_SERVERS      0x78 /* RFC 3361. flag byte, then: 0: domain names, 1: IP addrs */
 //#define DHCP_STATIC_ROUTES    0x79 /* RFC 3442. (mask,ip,router) tuples */
+#define DHCP_VLAN_ID            0x84 /* 802.1P VLAN ID */
+#define DHCP_VLAN_PRIORITY      0x85 /* 802.1Q VLAN priority */
 //#define DHCP_MS_STATIC_ROUTES 0xf9 /* Microsoft's pre-RFC 3442 code for 0x79? */
 //#define DHCP_WPAD             0xfc /* MSIE's Web Proxy Autodiscovery Protocol */
 #define DHCP_END                0xff