diff --git a/console/ifconfig.js b/console/ifconfig.js
index 639923f65ee2cbddc3f4149bae11f770c1599f14..8617811eea7f4dc88d3b8a7b41bad162fe5611f1 100644
--- a/console/ifconfig.js
+++ b/console/ifconfig.js
@@ -6,6 +6,11 @@ var ifconfig_cmd = {
         var rc = networking_interface.set_ip(ifname, ip, netmask);
         return rc;
     },
+    
+    if_up: function(ifname) {
+        var rc = networking_interface.if_up(ifname);
+        return rc;
+    },
         
     invoke: function(inp) {
         if (inp.length != 6) {
@@ -23,6 +28,11 @@ var ifconfig_cmd = {
         if (!rc) {
             print ("ifconfig: unable to set ip, wrong input");
         }
+        
+        rc = this.if_up(ifname);
+        if (!rc) {
+            print ("ifconfig: unable to ifup interface");
+        }
     },
     
     help: function() {
diff --git a/java/cli/com/cloudius/cli/util/Networking.java b/java/cli/com/cloudius/cli/util/Networking.java
index 47a5b9b19391b8b18db153174c36ee5aac402a74..2d123a3c7313b56321b52ea9ae2b7cfd052b3adb 100644
--- a/java/cli/com/cloudius/cli/util/Networking.java
+++ b/java/cli/com/cloudius/cli/util/Networking.java
@@ -23,6 +23,17 @@ public class Networking extends ScriptableObject {
         }
     }
     
+    @JSFunction
+    public static boolean if_up(String ifname)
+    {
+        try {
+            IFConfig.if_up(ifname);
+            return true;
+        } catch (IOException e) {
+            return false;
+        }
+    }
+    
     @Override
     public String getClassName() {
         return "Networking";
diff --git a/java/cloudius/com/cloudius/net/IFConfig.java b/java/cloudius/com/cloudius/net/IFConfig.java
index e5d2c4c11c5b2b89d8adb13b244b008dd41a804e..b054d7cdb1b38da1eb300fda1a3fe2ecf7cb6d72 100644
--- a/java/cloudius/com/cloudius/net/IFConfig.java
+++ b/java/cloudius/com/cloudius/net/IFConfig.java
@@ -11,4 +11,7 @@ public class IFConfig {
     
     public native static void set_ip(String ifname, String ip, String netmask)
             throws IOException;
+    
+    public native static void if_up(String ifname) throws IOException;
+    
 }
diff --git a/java/jni/networking.cc b/java/jni/networking.cc
index 8e46a064bb206e77eeeb7fa61af0053350beacca..8c77e44224806e6dc1308cd164afea77c40c25bd 100644
--- a/java/jni/networking.cc
+++ b/java/jni/networking.cc
@@ -23,3 +23,22 @@ extern "C" JNIEXPORT void JNICALL Java_com_cloudius_net_IFConfig_set_1ip
     env->ReleaseStringUTFChars(ip, ip_c);
     env->ReleaseStringUTFChars(netmask, netmask_c);
 }
+
+/*
+ * Class:     com_cloudius_net_IFConfig
+ * Method:    if_up
+ * Signature: (Ljava/lang/String;)V
+ */
+extern "C" JNIEXPORT void JNICALL Java_com_cloudius_net_IFConfig_if_1up
+  (JNIEnv *env , jclass self, jstring ifname)
+{
+    const char * ifname_c = env->GetStringUTFChars(ifname, 0);
+
+    int error = osv_ifup(ifname_c);
+    if (error) {
+        jclass cls = env->FindClass("java/io/IOException");
+        env->ThrowNew(cls, "osv_ifup failed");
+    }
+
+    env->ReleaseStringUTFChars(ifname, ifname_c);
+}