Search

Monday, November 11, 2019

Windows 10: Move Partitions for Contiguous Unallocated Space to Extend Existing Partitions

The problem:

Windows 10 Partitions with unused free space: Windows Disk Management Screen


An old laptop (HP 2000) running Windows 10 Pro was upgraded from 80 GB 2.5" SATA Hard Disk Drive to 240 GB 2.5" SATA Solid State Drive (SSD). I used Clonezilla to back up the old 80 GB drive and restore to the new larger SSD. This worked fine as expected. However, I am left with a totally unused 149 GB space on the new SSD.

I cannot extend the Windows 10 partition into the unused space using Windows Disk Management administration tool because the recovery partition is right next to the Windows partition and before the empty space preventing a merge of the unallocated unused space with the Windows partition.

So I have to find a way to move the recovery partition to the end of the disk so that the empty space is moved left, next to the Windows partition. Then I can extended the Windows partition to use the unallocated space.

The solution:

The top search result: EaseUS Partition Master. There is a free edition for personal / home use. The downloaded installer filename is "epm_free_installer.exe". After a quick Virustotal scan, I proceeded to install it. The installer was a stub which downloaded the real 33.44 MB installer and completed the installation fine after taking significant time to get beyond the 93% completion mark. On launching it and approving a UAC check, a pretty neat initial information screen was presented:

EaseUS Partition Manager initial screen


The program queues up the desired operations and executes them when all operations are in the queue. It does not make any immediate changes as the list of operations is constructed.

The first operation: Right-clicking on the third partition produced a "Resize/Move" menu option. Choosing that option resulted in the following screen in which I simply changed the "Unallocated After" value to 0, moving the partition to the end of the disk:

EaseUS - moving partition to end of disk

The second operation: creating a partition in the free space. Again, right-clicking on the 3rd partition (now occupied by the unallocated empty space) produced a menu with a "Create" option to create a partition in the unallocated space:

Windows 10 NTFS - EaseUS Create Partition in Unallocated Space

Windows 10 NTFS Partition Management - Create new partition in empty space


The third operation: Now that we have the empty partition next to the existing Windows partition, we can merge the two to extend the Windows partition into the empty space. Again, right-clicking on the 3rd (empty) partition and choosing "Merge" produces check boxes in the partitions to select the partitions to merge, which in this case is the 3rd partition as the source of the merge and the existing Windows (2nd) partition as the target of the merge. Note: Only empty partitions can be merged into existing Windows boot partition but not the other way around; EaseUS conveniently warns if this rule is not followed, and does not enable the OK button.

Windows 10 NTFS Merge Extend Boot Partition with Empty Partition


This is what I wanted. At this stage, EaseUS displays a play button at the top left of the screen labeled "Execute 3 Operations". On clicking the Play button, it pops up a "Pending Operations" screen summarizing what is to be done with a warning of a reboot being required along with Apply and Cancel buttons. On Applying the changes and rebooting, I had the desired results:

Windows 10 Merged Boot System Primary Partition

Happy!


Saturday, November 9, 2019

HPUX 11i v1 (HPUX 11.11) PA-RISC Guest Virtualization using QEMU on FreeBSD Host

Supratim Sanyal's Blog: Virtual HPUX 11i CDE Desktop on QEMU for FreeBSD


I jumped on Astr0baby's recently published "Running HP-UX 11.11 on qemu-system-hppa" about running HP's solid enterprise-class HPUX Unix version 11i v1 (HPUX 11.11) on the venerable PARISC processor now emulated completely by QEMU. Proceeding to download the latest QEMU development source from github and building qemu-system-hppa on my FreeBSD Release-12 host running on a Dell PowerEdge 2950, and downloading the HPUX 11i ISO CD images, I fired up the QEMU virtual machine and soon had HP-UX Version B.11.11 running on a HP 9000/778/B160L.

Supratim Sanyal's Blog: HPUX 11i running in QEMU qemu-system-hppa on FreeBSD virtualization host


Remarkably, almost as soon as I had HPUX 11.11 running, the maintainer of QEMU HPPA emulator checked in new code that supports Digital Equipment Corporation's Tulip network card, as pointed out almost immediately by one of the folks following Astr0baby's post. A fresh pull and rebuild of the QEMU source enabled networking on the HPUX virtual machine, which also means the nostalgic HPUX CDE desktop environment is now accessible over network as in the screenshot above.

I prefer to use VDE (Virtual Distributed Ethernet) for my virtualization experiments. QEMU has great support for VDE networking as does Oracle VirtualBox. However, attempting to build QEMU with VDE configured on FreeBSD requires the VDE development library on FreeBSD which I have not located yet. Network connectivity is for now using standard TAP interfaces bridged into a VDE switch. The script that sets the VDE switch and bridges TAP interfaces into it is documented in my prior post here.

The script that launches the HPUX virtual machine looks like this:

#!/bin/sh

# Launches Guest:
# 10.42.2.55 hpux.sanyalnet.lan hpux

# Change -boot to d to boot from cdrom or c to boot from hdd

# Careful of MAC address conflicts in network! Last HEX pair of MAC = last byte of guest IP.
# Also, VNC screen, if any, on dispaly number = last byte of guest IP
# And Console TELNET port = 20800 + last byte of guest IP

TELNET_CONSOLE_PORT=20855
screen -m -d -S HPUX-QEMUMON \
./qemu-system-hppa \
    -boot c \
    -m 512 \
    -drive if=scsi,bus=0,index=0,file=./hpux-striped-8gb-disk-1.qcow2.dsk,format=qcow2 \
    -drive if=scsi,bus=0,index=1,file=./hpux-striped-8gb-disk-2.qcow2.dsk,format=qcow2 \
    -cdrom ./ISO/hpux11-01.iso \
    -net nic,model=tulip,macaddr="58:9C:FC:52:54:37" \
    -net tap,ifname=tap4,script=no \
    -serial telnet::${TELNET_CONSOLE_PORT},server \
    -serial mon:stdio \
    -nographic \
    -d nochain \
    -vnc :55 \
    ####-smp cpus=2 ## -accel tcg ###,thread=multi

sleep 2

screen -m -d -S HPUX-CONSOLE telnet localhost ${TELNET_CONSOLE_PORT}

echo At this point, qemu should be on screen HPUX-QEMUMON and console telnet session on screen HPUX-CONSOLE
echo You can launch a CDE Graphical Desktop Session using Xephyr like the following:
echo Xephyr -screen 1200x720 -ac -query 10.42.2.55 :55

sync;sync;sync
exit 0

For the HPUX/PARISC virtual machine, I configured two 8GB virtual disks and told HPUX to use the two disks as a striped logical volume group. The two virtual disks are in QEMU's QCOW v2 (acutally QCOW v3) format. Similar to RAID0, using disk striping promises to significantly improve performance, at the cost of providing 8GB total capacity despite the two 8GB disks.

$ ls -l *dsk
-rw-r--r--  1 localuser  localuser  622919680 Nov  9 17:30 hpux-striped-8gb-disk-1.qcow2.dsk
-rw-r--r--  1 localuser  localuser  550502400 Nov  9 17:30 hpux-striped-8gb-disk-2.qcow2.dsk

$ file *dsk
hpux-striped-8gb-disk-1.qcow2.dsk: QEMU QCOW Image (v3), 8589934592 bytes
hpux-striped-8gb-disk-2.qcow2.dsk: QEMU QCOW Image (v3), 8589934592 bytes

I did not see any major performance improvements with QEMU's accelerator or with using two virtual CPUs to enable SMP (-smp cpus=2 -accel tcg,thread=multi) though HPUX had no problem recognizing the additional CPU. In fact, performance may have been worse than using just one CPU with no acceleration, so I disabled acceleration and multiprocessor support in QEMU. Here is the report from ioscan:

Class       I  H/W Path     Driver    S/W State   H/W Type     Description
===========================================================================
bc          0               root      CLAIMED     BUS_NEXUS    
bc          1  8            bc        CLAIMED     BUS_NEXUS    Pseudo Bus Converter
ba          0  8/0          GSCtoPCI  CLAIMED     BUS_NEXUS    GSCtoPCI Bridge
ext_bus     0  8/0/0/0      c720      CLAIMED     INTERFACE    SCSI C895 Fast Wide LVD
target      0  8/0/0/0.0    tgt       CLAIMED     DEVICE       
disk        0  8/0/0/0.0.0  sdisk     CLAIMED     DEVICE       QEMU    QEMU HARDDISK
                           /dev/dsk/c0t0d0   /dev/rdsk/c0t0d0
target      1  8/0/0/0.1    tgt       CLAIMED     DEVICE       
disk        1  8/0/0/0.1.0  sdisk     CLAIMED     DEVICE       QEMU    QEMU HARDDISK
                           /dev/dsk/c0t1d0   /dev/rdsk/c0t1d0
target      2  8/0/0/0.2    tgt       CLAIMED     DEVICE       
disk        2  8/0/0/0.2.0  sdisk     CLAIMED     DEVICE       QEMU    QEMU CD-ROM
                           /dev/dsk/c0t2d0   /dev/rdsk/c0t2d0
target      3  8/0/0/0.7    tgt       CLAIMED     DEVICE       
ctl         0  8/0/0/0.7.0  sctl      CLAIMED     DEVICE       Initiator
                           /dev/rscsi/c0t7d0
lan         0  8/0/1/0      btlan     CLAIMED     INTERFACE    HP PCI 10/100Base-TX Core
                           /dev/diag/lan0  /dev/ether0     /dev/lan0     
tty         0  8/0/63       asio0     CLAIMED     INTERFACE    Built-in RS-232C
                           /dev/diag/mux0  /dev/mux0       /dev/tty0p0   
processor   0  48           processor CLAIMED     PROCESSOR    Processor
memory      0  63           memory    CLAIMED     MEMORY       Memory

HP-UX CDE Graphical Desktop


Initially, I was having trouble accessing the HPUX CDE graphical desktop using the usual XDMCP client (Xephyr) over network. An hourglass would show up, then disappear, and show up again, as if the X session was continually trying to start up and fail. Eventually I realized a core file was being created by "dtgreet" and traced the problem to "dtgreet fails and dumps core if the default font is unavailable for the selected locale". Although a patch is apparently available to address this, I wanted to fix the underlying issue of the missing default font. Further online research led to "Configuring HP-UX for Different Languages". Surely enough, the /etc/dt/config/Xconfig file had Dtlogin*language set to <lang>; simply editing the file to say "Dtlogin*language: en_US.iso88591" followed by running /sbin/init.d/dtlogin.rc reset immediately got HP-UX CDE working from the FreeBSD host machine:

$ exec Xephyr -screen 1200x720 -ac -query 10.42.2.55 :55

Supratim Sanyal's Blog: HPUX CDE Graphical Environment Start Up


Installing Software

I registered at HPE Software Depot describing myself as a Hobbyist and am able to download software via "Electronic Delivery". The software comes in the form of files with long filenames and  .depot extension, and the filenames have to be preserved for the swinstall tool to install them.

There was an initial hiccup in getting the swinstall tool to install the downloaded software: I was getting the error:

You do not have required permissions to perform this operation. Check permissions using the "swacl" command.

After attempting a lot of things mentioned online, the steps mentioned here regarding setting the acls worked:

1) Save the current (insufficient) host acl to a file:
 # swacl -l host > swacl.host

2) Edit swacl.host and givc all permissions ("a") to the usernames. After this change, swacl.host looks like:

user:root:a
user:localuser:a
group:swadm:a
any_other:-r---

3) Enable the modified acl:

# swacl -l host -F swacl.host

4) Restart the software agent daemon:

# /sbin/init.d/swagentd stop
# /sbin/init.d/swagentd start

Mozilla Web Browser on HP-UX 11i

Supratim Sanyal's Blog: Mozilla Web Browser on HP-UX 11i CDE Graphical Desktop


I downloaded PA_RISC_Firefox_3.5.09.00_May_10_ffox_A3509ar_pa.depot from the HPE Software Depot and transferred it to HP-UX's /var/spool/sw/ directory using FTP. The HP-UX swinstall tool was then invoked successfully to install Firefox.

# swinstall -s /var/spool/sw/PA_RISC_Firefox_3.5.09.00_May_10_ffox_A3509ar_pa.depot

Supratim Sanyal's Blog: Install Mozilla Firefox Web Browser on HPUX 11.11 PARISC

Supratim Sanyal's Blog: Install Mozilla Firefox Web Browser on HP-UX 11.i v1 PARISC


Unfortunately, the downloaded Firefox does not run on the PA7300LC processor of the emulated platform (it needs PA-RISC 2.0):
$ pwd
/opt/firefox
$ ./firefox-bin
sh: ./firefox-bin: Execute permission denied.
$ file firefox-bin
firefox-bin: PA-RISC2.0 shared executable dynamically linked -not stripped



Fortunately, a working Mozilla web browser was installed along with HP-UX 11.11, and can be invoked by typing in "mozilla" at a command prompt. Java support is questionable since Mozilla's text console (stdio) launch output indicates the Java plugin for PARISC 2.0 is not of the right executable format for the emulated PARISC 1.1 CPU.
$ pwd
/opt/mozilla
$ file mozilla-bin
mozilla-bin: PA-RISC1.1 shared executable dynamically linked -not stripped



HP even email back a very corporate-looking receipt for the electronic software distribution!

Supratim Sanyal's Blog: Mozilla Firefox for HP-UX 11i - Hewlett Packard Enterprise Electronic Delivery Receipt



Next, I grabbed depothelper from the awesome HP-UX Porting and Archive Centre and tried to install a couple of packages. With a one-line tweak of adding a command to FTP for Passive Mode (depothelper is just a script), the tool does an excellent job of pulling dependencies needed for the packages. However, my attempt to grab "wget" failed with it unable to download the first dependency. "bash" did slightly better in successfully downloading and installing all dependencies, but again wouldn't run on the QEMU's PA7300LC PA-RISC 1.1 processor because it expects PA-RISC 2.0.

The default HP-UX B.11.11 installation does come with a functional C compiler. Here is aclock compiled and running in a dtterm.

Supratim Sanyal's Blog: ACLOCK ASCII CLOCK ON HP-UX 11i (11.11) on HP PARISC


Installation Logs

I mostly remembered to captured the terminal sessions while performing the installation of HP-UX 11.11. Here are a couple for reference.

Initial Install - Virtual HP 9000/778 Console Log:






Initial Install - QEMU Monitor Log:






Post-Install First Boot - Virtual HP 9000/778 Console Log:








Sunday, October 20, 2019

4.3 BSD VAX - revisiting a minimal tiny httpd web server

Supratim Sanyal's Blog: Simple httpd web server running on 4.3 BSD VAX
Simple httpd web server running on 4.3 BSD VAX

The SIMH 4.3 BSD VAX instance that I wrote about earlier has been performing flawlessly, but was still missing a web server. Recently, Atr0baby figured out a way to compile a web server on his 4.3 BSD VAX installation and documented it here.

So I followed the instructions and got a working web server by compiling Nigel Griffiths's nweb which needed only minor tweaks to get compiled with gcc version 2.7.2.2 VAX-DEC-BSD. You can download the tweaked nweb from here.

It works fine, except that every time it serves a web page, it leaves a zombie <defunct> process behind in 4.3 BSD process table:

Supratim Sanyal's Blog: Zombie Processes on 4.3 BSD VAX fork function usage


I played around with the nweb23.c source code trying things including changing the System-V SIGCLD to BSD SIGCHLD, a dedicated signal handler function, introducing wait() system call, etc. but could not get rid of zombies left behind when the forked process exited after serving a http request. It appears the confusion about zombies was pretty common in these ancient but exciting times - for example here is excerpt from Shichao's Notes:

SIGCLD Semantics

Two signals that continually generate confusion are SIGCLD and SIGCHLD. The name SIGCLD (without the H) is from System V, and this signal has different semantics from the BSD signal, named SIGCHLD. The POSIX.1 signal is also named SIGCHLD.
The semantics of the BSD SIGCHLD signal are normal and its semantics are similar to all other signals. When the signal occurs, the status of a child has changed, and we need to call one of the wait functions to determine what has happened.
System V, however, has traditionally handled the SIGCLD signal differently from other signals:
  1. If the process specifically sets its disposition to SIG_IGN, children of the calling process will not generate zombie processes. [p333]
    • 4.4BSD always generates zombies if SIGCHLD is ignored. If we want to avoid zombies, we have to wait for our children.
  2. If we set the disposition of SIGCLD to be caught, the kernel immediately checks whether any child processes are ready to be waited for and, if so, calls the SIGCLD handler. [p333-335]
    • FreeBSD 8.0 and Mac OS X 10.6.8 don’t exhibit this problem, because BSD-based systems generally don’t support historical System V semantics for SIGCLD.
    • Linux 3.2.0 also doesn’t exhibit this problem, because it doesn’t call the SIGCHLD signal handler when a process arranges to catch SIGCHLD and child processes are ready to be waited for, even though SIGCLD and SIGCHLD are defined to be the same value.
    • Solaris avoids this problem by including extra code in the kernel.
Of the four platforms described in this text, only Linux 3.2.0 and Solaris 10 define SIGCLD. On these platforms, SIGCLD is equivalent to SIGCHLD.

Perhaps the 4.3 BSD kernel works this way and does a cleanup of zombies when needed, as some other literature indicates.

In any case, I gave up on nweb for 4.3 BSD VAX, and switched to a much simpler, and far more rudimentary, httpd responder (I cannot call it a web server): David Egan's HTTP Server in C. This one is as minimal as it gets - when it receives anything on its listening port, it simply accepts the connection and sends back a hard-coded HTTP header string and all lines in a local file back out. It does not try to create child processes etc. I call it "shs" (simple http server) and here is the slightly-tweaked source that compiles fine with gcc 2.7.2.2 on 4.3 BSD VAX:



I also compiled the old "wget" version using gcc on 4.3 BSD VAX. This allows convenient downloading of stuff from around the web. The 4.3 BSD VAX binaries of nweb, shs and wget can be downloaded from my google drive.

Lastly, you can see the little 4.3 BSD VAX http web server in action at http://sanyal.duckdns.org:94/.


Thursday, October 10, 2019

KAOS Sound - Pink Floyd FreeForm: Direct Stream URL

KAOS Sound Pink Floyd Radio Direct Stream

I have been listening to Kent, UK-based KAOS-Sound for years. Along with the originals, they have a addictive collection of remarkable performances by tribute bands and individual artists, some of which are very interesting and unexpected adaptations of Pink Floyd's music.

It is easily available on TuneIn Radio, but sometimes I need their direct stream URL to play on media player apps. So here are direct links to KAOS-Sound Pink Floyd Radio streams:


http://87.117.193.5:8030



http://87.98.216.129:59506


MyRadioStream Player »


TuneIn Radio Player:








Sunday, September 29, 2019

Virtualization on FreeBSD Host and Oracle VirtualBox Guests with VDE Networking

Supratim Sanyal's Blog: Oracle VirtualBox Guest Networking using VDE / VDE2 (Virtual Distributed Ethernet)


I described the basic setup for VirtualBox virtualization on FreeBSD 12-RELEASE as a host in an earlier post. Here are some notes on setting up VDE (Virtual Distributed Ethernet) guest networking with Oracle VirtualBox hypervisor version 5.2.32 running on FreeBSD 12.0-RELEASE-p10.

vde2 User-mode virtual ethernet infrastructure was installed from FreeBSD binary package repository using "sudo pkg install vde2". Keep in mind vde2 should be installed, not the "vde" package which is also available.

VirtualBox was built from the FreeBSD ports sources using "cd /usr/ports/emulators/virtualbox-ose/ && make install clean" with VDE networking option selected from the configuration screens produced by the build script.

The following setup script vde-switch.sh is invoked at boot time from /etc/rc.local to set the VDE switch and tap interfaces up:


It is to be noted that on FreeBSD, rc.local should source /etc/rc.conf first, i.e. the following should appear first before invoking other startup scripts:
. /etc/rc.conf

Once the VDE switch is created, the Oracle VirtualBox virtual machines are configured to use the VDE switch. This is accomplished by a series of "vboxmanage modifyvm" commands, as in the example below which configured my IBM OS/2 Warp 4.5 for eBusiness virtual machine:

$ vboxmanage modifyvm OS2-Warp-4.5-Server --nic1 generic
$ vboxmanage modifyvm OS2-Warp-4.5-Server --nicgenericdrv1 VDE
$ vboxmanage modifyvm OS2-Warp-4.5-Server --nicproperty1 network=/tmp/vde-ip.ctl

To identify the VDE switch to be used for virtual machine networking, the "network=" specification in the last command above uses the same socket specified in the "-s" switch when setting up the VDE switch at boot time.

After configuring the VirtualBox virtual appliance for VDE using the commands, the VirtualBox GUI settings show the networking configuration as the screenshot at the top of this post.

It may be possible to use the GUI and choose the VDE switch-related parameters graphically, but I have not tried that personally.

VDE networking for VirtualBox appliances works flawlessly once configured. I have multiple Virtualization hosts and connect all the VirtualBox virtual machines across all of them to one logical Ethernet switch using VDE's Ethernet-over-SSL tunneling capability. A typical command line to set up a Ethernet-over-SSL tunnel to another VM host looks like:

/usr/local/bin/dpipe /usr/local/bin/vde_plug /tmp/vde-ip.ctl = ssh vde0@$REMOTE vde_plug /tmp/vde-ip.ctl

For the above to work, obviously password-less SSH login to the "vde0" account on the remote host specified by the REMOTE environment variable had to be set up.

I also usually enable VDE switch's fstp (Fast Spanning Tree Protocol) on all of my VDE switches in the hope of avoiding Ethernet packet flooding-related Network issues. It appears once in a while the VDE port that is the end-point of the SSL tunnel to the remote VDE switch is designated "root" sporadically, potentially impacting connectivity to other VDE switches. When this happens, I manually change the SSL tunnel source port to and edge port using the "fstp/setedge" command from unixterm (the control program for VDE switch). Here is a typical example of such a session, where port 3 had transitioned to a "root" port which I force back to edge port:

$ unixterm /tmp/vde-ip.mgmt 
VDE switch V.2.3.2
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ port/allprint
0000 DATA END WITH '.'
Port 0001 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: NONE Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0007 module tuntap      : tap0
Port 0002 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: root Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0003 module unix prog   : vde_plug: user=root PID=1043
Port 0003 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: localuser Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0009 module unix prog   : vde_plug: user=localuser PID=1120
Port 0004 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: localuser Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0011 module unix prog   : VirtualBOX user=localuser PID=1747 SSH=10.100.0.123
Port 0005 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: localuser Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0013 module unix prog   : VirtualBOX user=localuser PID=1748 SSH=10.100.0.123
Port 0006 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: localuser Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0015 module unix prog   : VirtualBOX user=localuser PID=3725 SSH=10.100.0.123
Port 0007 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: localuser Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0017 module unix prog   : VirtualBOX user=localuser PID=1750 SSH=10.100.0.123
.
1000 Success

vde$ fstp/print
0000 DATA END WITH '.'
FST DATA VLAN 0000  
 ++ root 80:00:00:ff:4d:44:85:2d
 ++ designated 80:00:00:ff:4d:44:85:2d
 ++ rootport 0003 cost 20000000 age 1 bonusport 0000 bonuscost 0
 -- Port 0001 tagged=0 portcost=20000000 role=Designated
 -- Port 0002 tagged=0 portcost=20000000 role=Designated
 -- Port 0003 tagged=0 portcost=20000000 role=Root
 -- Port 0004 tagged=0 portcost=20000000 role=Designated
 -- Port 0005 tagged=0 portcost=20000000 role=Designated
 -- Port 0006 tagged=0 portcost=20000000 role=Designated
 -- Port 0007 tagged=0 portcost=20000000 role=Designated
.
1000 Success

vde$ fstp/setedge 0 3 1
1000 Success

vde$ fstp/print
0000 DATA END WITH '.'
FST DATA VLAN 0000  
 ++ root 80:00:00:ff:4d:44:85:2d
 ++ designated 80:00:00:ff:4d:44:85:2d
 ++ rootport 0003 cost 20000000 age 6 bonusport 0000 bonuscost 0
 -- Port 0001 tagged=0 portcost=20000000 role=Designated
 -- Port 0002 tagged=0 portcost=20000000 role=Designated
 -- Port 0003 tagged=0 portcost=20000000 role=Edge
 -- Port 0004 tagged=0 portcost=20000000 role=Designated
 -- Port 0005 tagged=0 portcost=20000000 role=Designated
 -- Port 0006 tagged=0 portcost=20000000 role=Designated
 -- Port 0007 tagged=0 portcost=20000000 role=Designated
.
1000 Success

vde$ logout


In the above example case, after setting the edge port, the remote VDE switch (the other end of the Ethernet-over-SSL tunnel) correctly show it's own Port 2 connected to Port 3 over SSH:

$ unixterm /tmp/vde-ip.mgmt 
VDE switch V.2.3.2
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ port/allprint
0000 DATA END WITH '.'
Port 0001 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: NONE Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0007 module tuntap      : vde-ip-tap0
Port 0002 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: vde0 Access Control: (User: NONE - Group: NONE)
  -- endpoint ID 0003 module unix prog   : vde_plug: user=vde0 PID=6352 SSH=10.100.0.13
.
1000 Success

vde$ fstp/print
0000 DATA END WITH '.'
FST DATA VLAN 0000 ROOTSWITCH 
 ++ root 80:00:00:ff:4d:44:85:2d
 ++ designated ff:ff:ff:ff:ff:ff:ff:ff
 ++ rootport 0000 cost 0 age 1287834 bonusport 0000 bonuscost 0
 -- Port 0001 tagged=0 portcost=20000000 role=Designated
 -- Port 0002 tagged=0 portcost=20000000 role=Designated
.
1000 Success

vde$ logout



Recommended Products from Amazon