Enable softwire-support by default
authorSteven Barth <steven@midlink.org>
Mon, 25 Aug 2014 06:08:56 +0000 (08:08 +0200)
committerSteven Barth <steven@midlink.org>
Mon, 25 Aug 2014 06:08:56 +0000 (08:08 +0200)
CMakeLists.txt
README
src/dhcpv6.c
src/odhcp6c.h
src/script.c

index 9e508f17415874b767c96f1d534c1d151d4d8db4..f85334c0e733f17959f13f5b8ee7a44142dbf3e3 100644 (file)
@@ -15,10 +15,6 @@ if(${EXT_CER_ID})
        add_definitions(-DEXT_CER_ID=${EXT_CER_ID})
 endif(${EXT_CER_ID})
 
        add_definitions(-DEXT_CER_ID=${EXT_CER_ID})
 endif(${EXT_CER_ID})
 
-if(${EXT_S46})
-       add_definitions(-DEXT_S46=${EXT_S46})
-endif(${EXT_S46})
-
 add_executable(odhcp6c src/odhcp6c.c src/dhcpv6.c src/ra.c src/script.c src/md5.c)
 target_link_libraries(odhcp6c resolv)
 
 add_executable(odhcp6c src/odhcp6c.c src/dhcpv6.c src/ra.c src/script.c src/md5.c)
 target_link_libraries(odhcp6c resolv)
 
diff --git a/README b/README
index f9abd494a807271512c01d238151f9d215af2b17..91cefc05cd13314b46f3cc9b22eb35b7e29df4b2 100644 (file)
--- a/README
+++ b/README
@@ -28,9 +28,9 @@ especially routers. It compiles to only about 30 KB (-Os -s).
        g) Information-Refresh Options
        h) Configurable SOL_MAX_RT
        i) DS-Lite AFTR-Name Option
        g) Information-Refresh Options
        h) Configurable SOL_MAX_RT
        i) DS-Lite AFTR-Name Option
-       j) Prefix Class (experimental)
-       k) CER-ID (experimental)
-       l) Softwire address and port mapped clients (experimental)
+       j) Softwire address and port mapped clients (MAP, LW4over6)
+       k) Prefix Class (experimental)
+       l) CER-ID (experimental)
 
 4. Support for requesting and parsing Router Advertisements
        a) parsing of prefixes, routes, MTU and RDNSS options
 
 4. Support for requesting and parsing Router Advertisements
        a) parsing of prefixes, routes, MTU and RDNSS options
index aafd237b034b4a9bd187eb100f88382a3d0ee23a..b7fccaca62e78e9a048b8da5151677523ef69dcd 100644 (file)
@@ -179,11 +179,9 @@ int init_dhcpv6(const char *ifname, unsigned int options, int sol_timeout)
 #ifdef EXT_CER_ID
                        htons(DHCPV6_OPT_CER_ID),
 #endif
 #ifdef EXT_CER_ID
                        htons(DHCPV6_OPT_CER_ID),
 #endif
-#ifdef EXT_S46
                        htons(DHCPV6_OPT_S46_CONT_MAPE),
                        htons(DHCPV6_OPT_S46_CONT_MAPT),
                        htons(DHCPV6_OPT_S46_CONT_LW),
                        htons(DHCPV6_OPT_S46_CONT_MAPE),
                        htons(DHCPV6_OPT_S46_CONT_MAPT),
                        htons(DHCPV6_OPT_S46_CONT_LW),
-#endif
                };
                odhcp6c_add_state(STATE_ORO, oro, sizeof(oro));
        }
                };
                odhcp6c_add_state(STATE_ORO, oro, sizeof(oro));
        }
@@ -1041,7 +1039,6 @@ static int dhcpv6_handle_reply(enum dhcpv6_msg orig, _unused const int rc,
                                odhcp6c_add_state(STATE_CER, &cer_id->addr, sizeof(any));
                        passthru = false;
 #endif
                                odhcp6c_add_state(STATE_CER, &cer_id->addr, sizeof(any));
                        passthru = false;
 #endif
-#ifdef EXT_S46
                } else if (otype == DHCPV6_OPT_S46_CONT_MAPT) {
                        odhcp6c_add_state(STATE_S46_MAPT, odata, olen);
                        passthru = false;
                } else if (otype == DHCPV6_OPT_S46_CONT_MAPT) {
                        odhcp6c_add_state(STATE_S46_MAPT, odata, olen);
                        passthru = false;
@@ -1054,7 +1051,6 @@ static int dhcpv6_handle_reply(enum dhcpv6_msg orig, _unused const int rc,
                } else if (otype == DHCPV6_OPT_S46_CONT_LW) {
                        odhcp6c_add_state(STATE_S46_LW, odata, olen);
                        passthru = false;
                } else if (otype == DHCPV6_OPT_S46_CONT_LW) {
                        odhcp6c_add_state(STATE_S46_LW, odata, olen);
                        passthru = false;
-#endif
                } else if (otype == DHCPV6_OPT_CLIENTID ||
                                otype == DHCPV6_OPT_SERVERID ||
                                otype == DHCPV6_OPT_IA_TA ||
                } else if (otype == DHCPV6_OPT_CLIENTID ||
                                otype == DHCPV6_OPT_SERVERID ||
                                otype == DHCPV6_OPT_IA_TA ||
index 01fb07262bf776cb301c8d1a9e55395732b2c32b..59c4a42b973d2b53c142f1e320d720ce5a98f2b4 100644 (file)
@@ -73,17 +73,15 @@ enum dhcvp6_opt {
        /* draft-donley-dhc-cer-id-option-03 */
        DHCPV6_OPT_CER_ID = EXT_CER_ID,
 #endif
        /* draft-donley-dhc-cer-id-option-03 */
        DHCPV6_OPT_CER_ID = EXT_CER_ID,
 #endif
-#ifdef EXT_S46
-       /* draft-ietf-softwire-map-dhcp-07 */
-       DHCPV6_OPT_S46_RULE = EXT_S46,
-       DHCPV6_OPT_S46_BR = EXT_S46 + 1,
-       DHCPV6_OPT_S46_DMR = EXT_S46 + 2,
-       DHCPV6_OPT_S46_V4V6BIND = EXT_S46 + 3,
-       DHCPV6_OPT_S46_PORTPARAMS = EXT_S46 + 4,
-       DHCPV6_OPT_S46_CONT_MAPE = EXT_S46 + 5,
-       DHCPV6_OPT_S46_CONT_MAPT = EXT_S46 + 6,
-       DHCPV6_OPT_S46_CONT_LW = EXT_S46 + 7,
-#endif
+       /* draft-ietf-softwire-map-dhcp-08 */
+       DHCPV6_OPT_S46_RULE = 89,
+       DHCPV6_OPT_S46_BR = 90,
+       DHCPV6_OPT_S46_DMR = 91,
+       DHCPV6_OPT_S46_V4V6BIND = 92,
+       DHCPV6_OPT_S46_PORTPARAMS = 93,
+       DHCPV6_OPT_S46_CONT_MAPE = 94,
+       DHCPV6_OPT_S46_CONT_MAPT = 95,
+       DHCPV6_OPT_S46_CONT_LW = 96,
 };
 
 enum dhcpv6_opt_npt {
 };
 
 enum dhcpv6_opt_npt {
index 389dc3708b05c1bb97d1597dfa4c67ef4502a937..d443ede71a229e41ca0da7c0623186bdfa0ae01e 100644 (file)
@@ -209,7 +209,7 @@ static void entry_to_env(const char *name, const void *data, size_t len, enum en
        putenv(buf);
 }
 
        putenv(buf);
 }
 
-#ifdef EXT_S46
+
 static void s46_to_env_portparams(const uint8_t *data, size_t len, FILE *fp)
 {
        uint8_t *odata;
 static void s46_to_env_portparams(const uint8_t *data, size_t len, FILE *fp)
 {
        uint8_t *odata;
@@ -223,7 +223,7 @@ static void s46_to_env_portparams(const uint8_t *data, size_t len, FILE *fp)
                }
        }
 }
                }
        }
 }
-#endif
+
 
 static void s46_to_env(enum odhcp6c_state state, const uint8_t *data, size_t len)
 {
 
 static void s46_to_env(enum odhcp6c_state state, const uint8_t *data, size_t len)
 {
@@ -237,7 +237,6 @@ static void s46_to_env(enum odhcp6c_state state, const uint8_t *data, size_t len
        fputs(name, fp);
        fputc('=', fp);
 
        fputs(name, fp);
        fputc('=', fp);
 
-#ifdef EXT_S46
        const char *type = (state == STATE_S46_MAPE) ? "map-e" :
                        (state == STATE_S46_MAPT) ? "map-t" : "lw4o6";
 
        const char *type = (state == STATE_S46_MAPE) ? "map-e" :
                        (state == STATE_S46_MAPT) ? "map-t" : "lw4o6";
 
@@ -327,9 +326,6 @@ static void s46_to_env(enum odhcp6c_state state, const uint8_t *data, size_t len
 
                fputc(' ', fp);
        }
 
                fputc(' ', fp);
        }
-#else
-       if (data && len) {}
-#endif
 
        fclose(fp);
        putenv(str);
 
        fclose(fp);
        putenv(str);