]> git.entuzijast.net Git - imunes.git/commitdiff
Add support for configs where only one protocol address (IPv4 or IPv6)
authormarko <marko>
Mon, 11 Jul 2005 17:09:30 +0000 (17:09 +0000)
committermarko <marko>
Mon, 11 Jul 2005 17:09:30 +0000 (17:09 +0000)
is configured on an interface, but not both.

Bug found by:
Submitted by:
Requested by:
Reviewed by:
Approved by:
Obtained from:

host.tcl
nodecfg.tcl
pc.tcl
quagga.tcl
static.tcl
xorp.tcl

index 774971b3d37146e3d45c4c25a1af01bdf92e1665..909db5b3233f6f383d758aa77827628c1916bfdb 100755 (executable)
--- a/host.tcl
+++ b/host.tcl
@@ -40,8 +40,14 @@ proc host.cfggen { node } {
     set cfg {}
 
     foreach ifc [ifcList $node] {
-       lappend cfg "ifconfig $ifc inet [getIfcIPv4addr $node $ifc]"
-       lappend cfg "ifconfig $ifc inet6 [getIfcIPv6addr $node $ifc]"
+       set addr [getIfcIPv4addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet $addr"
+       }
+       set addr [getIfcIPv6addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet6 $addr"
+       }
     }
     lappend cfg ""
 
index 40590377f8884614d83398e609c0d4873276c16d..55778d99319cb0bf8575e49276063dc06449ba41 100755 (executable)
@@ -514,7 +514,9 @@ proc setIfcIPv4addr { node ifc addr } {
             lappend ifcfg $line
         }
     }
-    lappend ifcfg " ip address $addr"
+    if { $addr != "" } {
+       lappend ifcfg " ip address $addr"
+    }
     netconfInsertSection $node $ifcfg
     return
 }
@@ -538,7 +540,9 @@ proc setIfcIPv6addr { node ifc addr } {
             lappend ifcfg $line
         }
     }
-    lappend ifcfg " ipv6 address $addr"
+    if { $addr != "" } {
+       lappend ifcfg " ipv6 address $addr"
+    }
     netconfInsertSection $node $ifcfg
     return
 }
diff --git a/pc.tcl b/pc.tcl
index 3c76ef6e1d5a0c319db1d5a83d6dd20f7258574a..64e0049cc21589e53bfbf4110bbf25f4e903d686 100755 (executable)
--- a/pc.tcl
+++ b/pc.tcl
@@ -40,8 +40,14 @@ proc pc.cfggen { node } {
     set cfg {}
 
     foreach ifc [ifcList $node] {
-       lappend cfg "ifconfig $ifc inet [getIfcIPv4addr $node $ifc]"
-       lappend cfg "ifconfig $ifc inet6 [getIfcIPv6addr $node $ifc]"
+       set addr [getIfcIPv4addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet $addr"
+       }
+       set addr [getIfcIPv6addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet6 $addr"
+       }
     }
     lappend cfg ""
 
index 02a6ec8d294edb3e99bbbb68eb755eadfce7255f..4f492f035c78a4b41135a241496650eeecc40d1c 100755 (executable)
@@ -41,8 +41,14 @@ proc router.quagga.cfggen { node } {
 
     foreach ifc [ifcList $node] {
        lappend cfg "interface $ifc"
-       lappend cfg " ip address [getIfcIPv4addr $node $ifc]"
-       lappend cfg " ipv6 address [getIfcIPv6addr $node $ifc]"
+       set addr [getIfcIPv4addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg " ip address $addr"
+       }
+       set addr [getIfcIPv6addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg " ipv6 address $addr"
+       }
        if { [getIfcOperState $node $ifc] == "down" } {
            lappend cfg " shutdown"
        }
index 588499580cd30906bc473f6cda98e29c4bf8eca5..558205fa64dff01590c0f2a94283ffab0400e197 100755 (executable)
@@ -40,7 +40,14 @@ proc router.static.cfggen { node } {
     set cfg {}
 
     foreach ifc [ifcList $node] {
-       lappend cfg "ifconfig $ifc inet [getIfcIPv4addr $node $ifc]"
+       set addr [getIfcIPv4addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet $addr"
+       }
+       set addr [getIfcIPv6addr $node $ifc]
+       if { $addr != "" } {
+           lappend cfg "ifconfig $ifc inet6 $addr"
+       }
     }
     lappend cfg ""
 
index 085bf13df5038129fde0e5c0676f832275a5d242..2c50987fbb726e9a6091970db141ee3100c80f6a 100755 (executable)
--- a/xorp.tcl
+++ b/xorp.tcl
@@ -47,12 +47,16 @@ proc router.xorp.cfggen { node } {
        set ipv6mask "[lindex [split [getIfcIPv6addr $node $ifc] /] 1]"
        lappend cfg "    interface $ifc {"
        lappend cfg "      vif $ifc {"
-       lappend cfg "          address $ipv4addr {"
-       lappend cfg "              prefix-length: $ipv4mask"
-       lappend cfg "          }"
-       lappend cfg "          address $ipv6addr {"
-       lappend cfg "              prefix-length: $ipv6mask"
-       lappend cfg "          }"
+        if { $ipv4addr != "" } {
+           lappend cfg "          address $ipv4addr {"
+           lappend cfg "              prefix-length: $ipv4mask"
+           lappend cfg "          }"
+       }
+        if { $ipv6addr != "" } {
+           lappend cfg "          address $ipv6addr {"
+           lappend cfg "              prefix-length: $ipv6mask"
+           lappend cfg "          }"
+       }
        lappend cfg "      }"
        lappend cfg "    }"
     }
@@ -89,14 +93,38 @@ proc router.xorp.cfggen { node } {
        lappend cfg "   }"
        lappend cfg ""
        foreach ifc [ifcList $node] {
-           set ipaddr "[lindex [split [getIfcIPv4addr $node $ifc] /] 0]"
-           set ipmask "[lindex [split [getIfcIPv4addr $node $ifc] /] 1]"
-           lappend cfg "       interface $ifc {"
-           lappend cfg "           vif $ifc {"
-           lappend cfg "               address $ipaddr {"
-           lappend cfg "               }"
-           lappend cfg "           }"
-           lappend cfg "       }"
+           set addr "[lindex [split [getIfcIPv4addr $node $ifc] /] 0]"
+            if { $addr != "" } {
+               lappend cfg "   interface $ifc {"
+               lappend cfg "       vif $ifc {"
+               lappend cfg "           address $addr {"
+               lappend cfg "           }"
+               lappend cfg "       }"
+               lappend cfg "   }"
+           }
+       }
+       lappend cfg "    }"
+       lappend cfg "}"
+    }
+
+    if { [netconfFetchSection $node "router ripng"] != "" } {
+       lappend cfg "protocols {"
+       lappend cfg "    ripng {"
+       lappend cfg "   export static {"
+       lappend cfg "       metric: 1"
+       lappend cfg "       tag: 0"
+       lappend cfg "   }"
+       lappend cfg ""
+       foreach ifc [ifcList $node] {
+           set addr "[lindex [split [getIfcIPv6addr $node $ifc] /] 0]"
+            if { $addr != "" } {
+               lappend cfg "   interface $ifc {"
+               lappend cfg "       vif $ifc {"
+               lappend cfg "           address $addr {"
+               lappend cfg "           }"
+               lappend cfg "       }"
+               lappend cfg "   }"
+           }
        }
        lappend cfg "    }"
        lappend cfg "}"