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 9e508f1..f85334c 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 f9abd49..91cefc0 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 aafd237..b7fccac 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 01fb072..59c4a42 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 389dc37..d443ede 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);