Installation & Operating Guide |
VFC1011:
10 port VOA based fiber-cut switch |
|
|
Installation |
VFC1011
switch is a physical layer fiber cut switch which can also be used as a multi-port
VOA (variable attenuator). It supports 10 VOAs that can be configured or
monitored individually.
Connecting test equipment to VFC1011
For
example, if you want to simulate a fiber cut scenario between 2 optical devices
using one fiber/one direction.
Duplex Fiber
Device1-TX-------------------------è---------------------Device2-RX
Device1-RX ------------------------ç----------------------Device2-TX
Each
LC connector of VFC1011 has two input/outputs marked as B and A.
Then
you need to disconnect one of the fibers connecting these 2 devices and connect
them through VFC1011 port, between A and B like the following:
Device1-TX è [VFC1011-Port1BàVFC1011-Port1A] è Device2-RX
If
you want to simulate a break between both TX and RX fibers of these devices
under test (which may be the case in many scenarios) then you will have to use
2 ports of VFC1011, like the following
Device1-TX
è [VFC1011-Port1BàVFC1011-Port1A] è
Device2-RX
Device1-RX
ç [VFC1011-Port2BßVFC1011-Port2A] çDevice2-TX
UPSR,
2F-BLSR protection ring testing may require 2 VFC1011 ports while 4F-BLSR might
require 4 ports. To test 100Gbps
ethernet devices you will require total of 20 ports (2x VFC1011s) for 10 lanes
in each direction. Similarly, for 40Gbps you will require 8 ports for 4 lanes
in each direction.
Configuring VFC1011
VFC1011
provides a micro-USB console port and an Ethernet (10/100) port for management.
USB console port is normally used in special situations such as to debug
network connectivity if VFC1011 is not reachable through Ethernet.
If
you use USB console port then you will need a USB-A to micro-USB cable. Use
either putty (windows) or screen (Linux) or equivalent terminal login software.
The settings for console port need to be 115200 baud rate with 8-N-1. Also make sure you are using correct
COM port number (For instance, you can find out the correct COM port using
Device Manager on Windows).
If
you use Ethernet then you will have to configure the PC or Laptop's IP to match
VFC1011's default network. The default network configuration is DHCP so you
will see the IP address of the unit on OLED display if ethernet is connected a
network.
Default
Account settings
Login:
admin
Password:
admin
Login:
osctl
Password:
osctl
The
default root password is "osctl", but be
careful while using root, we recommend using "sudo"
instead to gain root access. Make sure
to change the root password after the initial setup.
Configuring Static IP
Before configuring IP please make sure the date and time settings are correct. You can use Linux CLI 'timedatectl' or our GUI 'clock' page to set the time. If you use GUI you will have to uncheck NTP and set the date and time.
You can use
"osctl" CLI to configure a static IP
address after login as "root" user. "osctl
-?" shows detailed osctl command options with
examples.
# osctl
-i 192.168.1.10 -m 255.255.255.0 -g 192.168.1.1
The
above command configures IP address of VFC1011 as 192.168.1.10 with mask
255.255.255.0 and gateway & DNS as 192.168.1. Once the IP is configured
from a PC or a Laptop using Ethernet or serial port, you can then connect VFC1011
to your network and access it using "telnet" or "ssh".
Configuring
Dynamic IP
A
DHCP server should be running on your network in order to configure dynamic ip. The DHCP client on the device then gets the ip from the server.
# osctl -D
Make
sure you know the assigned IP address to login using "telnet" or "ssh".
Configuring
Hostname
To
change the hostname of VFC1011 switch use '-h' option.
#
osctl -h VFC1011-SW-1
The
above command changes the hostname of VFC1011 to VFC1011-SW-1.
Configuring
DNS/Nameserver
To
configure a DNS or Nameserver, use "-n" option of osctl.
# osctl -n 192.168.1.11
Configuring
Syslog Server
To
send system generated events to an external syslog server, use the "-S"
option. You have to specify the address of the syslog server which will receive
these event logs. (Note: this option only available in software version 2.0 and
above).
# osctl -S 192.168.1.200
Version
Info
The
following command shows hardware and software versions and the serial number of
the switch.
# osctl -V
Other
Administrative commands
Most
of the other administrative functions can be achieved using standard Debian Linux
commands. For example, to change the password use the "passwd"
command from the Linux prompt and to add new user use the "useradd" command. You have to be "root" user
in order to add a new user.
Operation |
To
simply the operation, all functions are provided in a single command called "osctl". The osctl command provides
3 major functions
1.
Network
& Host configuration (allowed only in "root")
2.
Switch
Control & Status
3.
Port
group Management
Network & Host configuration |
The
following are the commands used to configure network.
1.
To
configure static IP
#
osctl -i <ip> -m <mask> -g <gw>
2.
To
use DHCP (dynamic IP)
#
osctl -D
3.
To
configure hostname
#
osctl -h <hostname>
4.
To
configure a DNS or Nameserver, use "-n" option
#
osctl -n <dns-server-ip>
5.
To
configure syslog server to receive VFC1011's events
#
osctl -S <syslog-server-ip>
For
details refer to installation section as these are explained in that section.
Switching Control |
In
order to switch a particular port or ports or a group ON or OFF, you can use
following command:
$
osctl -p {<port#/s> | <port-range> |
<port-group>} <on|off> [-t <secs>]
Note
that the "{}" (braces) groups options and "|" is equivalent
to "or". If the options are in square brackets "[]" then it
is optional. Wherever you see port# or in_port# they
all the same and represents one of 8 ports of VFC1011.
For
example:
$ osctl -p 4 on
è
switch
port 4 to ON. LED on port 4 of VFC1011 lids when this command is issued which
confirms that the port is switched ON.
$ osctl -p "1 2 3" on
è
switch
ports 1, 2 and 3 to ON. Note the double quote, without that it won't work.
$ osctl -p "1-4" off
è
switch
ports 1, 2, 3 and 4 to OFF (range 1 to 4). This comes in handy when you want to
switch bunch of ports together.
$ osctl -p gp1 off
è
switch
all ports in group "gp1" to OFF. You will have to create group before
using it with "-c" option as explained in "Group Management"
section.
$ osctl -p 2 off -t 120
è
switch
port 2 to OFF after 120 (delayed switching)
$ osctl -p 2 off -T 120
è
switch
port 2 to OFF gradually within 120 milliseconds. This option is only available on VFC series switches. It is
different from above delay where the switching happens almost immediately
120 secs of wait but in this case switching takes 120 milliseconds to
come to completely OFF state to simulate real world fiber cuts. Default is 10 milliseconds.
Switch Status |
Th
following command shows the status of a port or the status of ports in a pre-defined
group, whether it is on/off.
$ osctl -s [<port_group> | <in_port#>]
$ osctl -A [<port_group> | <in_port#>]
$ osctl -B [<port_group> | <in_port#>]
For
example:
$ osctl -s
è
shows
all ports' & groups' status as follows. It shows first all ports and tells
you which ports are part of a group.
All Ports Status
====================================
Port | Port Status
====================================
1 | off
2 | off
3 | off
4 | off
5 | on
6 | on
7 | on
8 | on
------------------------------------
Group Status
=================================
Group Name | Port Status
=================================
gp1
| off
---------------------------------
===========================================
Group's Port Details
===========================================
GroupName: <gp1>
Port Status: off
Ports in the group: 1 2 3 4
$ osctl -s gp1
è
shows
group "gp1" status only. You will have to create group before using
it with "-c" option as explained in "Group Management"
section.
$ osctl -s 3
è
shows
port 3 status only
$ osctl -A 2
è
displays
port 2 attenuation in 1-256 range
$ osctl -B 4
è
displays
port 4 attenuation in dB
Port group Management |
Port
group management commands provide the convenience of switching many ports
together identified by a name. The group name can be any alpha-numeric name but
cannot be a number alone or start with a number. For example, group name cannot
be "10" or 10gp1.
1.
To
create a new group
$ osctl -c <port-group> {<in-port#/s>
| <inport-range>}
2.
To
update existing group
$ osctl -u <port-group>
{-a | -r <in-port#/s>}
3.
To
delete a group
$ osctl -d <port-group>
4.
To
delete all groups
$ osctl -R
5.
To
list ports in a group
$ osctl -l [<port-group> | <in-port#>]
For
example:
$ osctl -c gp1 "1
3 4"
è
creates
group named "gp1" with ports 1,3 and 4. The double quotes around
space separated port numbers are required. Note that when you create a group,
all the ports in the gp1 will be in OFF state by default.
$ osctl -c gp2 "5-8"
è
creates
group named "gp2" with ports 5,6,7 and 8 (5 to 8 range)
$ osctl -u gp1 -a "5
6"
è
adds
ports 5 & 6 to existing group gp1
$ osctl -u gp1 -a 7
è
adds
port 7 to existing group gp1
$ osctl -u gp1 -r "2
4"
è
removes
ports 2 & 4 from group gp1
$ osctl -d gp1
è
deletes
group gp1 and release all ports which were part of the group.
$ osctl -l
è
lists
ports in group, like
GroupName: <gp1>
Ports in the group: 1 2 3 4
$ osctl -R
è
delete
all groups in the database.
Setting Attenuation (VFC series only) |
-A
option
The
"-A" option is used to set the attenuation of any particular output
port or group to fraction of input power. It takes a number from 1 to 256 as a
divisor. It attenuates the power output of the port by that number. The more
the divisor, the more the attenuation is (256 is fully off & 1 is on).
The
attenuation setting is nonlinear. So, if you set the attenuation to 128, it
doesn't mean you are
setting the attenuation to half of the source power. Please refer to the
graph at the end of the manual which shows the relationship between applied
voltage and the attenuation. The applied voltage is linear but the VOA
response is nonlinear. Currently, the attenuation setting is not saved, once
you reset or reboot the switch attenuation setting is lost; you will have to
configure it again. |
$
osctl -A
{<port_group> | <in_port#>}
[ <divisor [1-256]> | [<divisor range [1-256]> -T <msec>]]
For
example:
$ osctl -A 1 128
-> set attenuation of port#1 to
128 (256 is fully off & 1 is on)
$ osctl -A 1
-> displays current attenuation
of port#1
$ osctl -A gp1 64
-> set the attenuation of all
ports in the group gp1 to 64
$ osctl -A 3-8 32
-> set the attenuation of ports
3,4,5,6,7 & 8 to 32
$ osctl -A 1 100-160 -T 5000 (requires sw. ver 3.0 and above)
-> set attenuation of port#1 to
100 first and ramp up to 160 in 5000 milliseconds period. This is useful for
creating packet errors as opposed to
full fiber-cut scenario.
$
osctl -A 1 160-100 -T 5000 (requires sw. ver 3.0 and above)
-> set attenuation of port#1 to
160 first and ramp down to 100 in 5000 milliseconds period.
The osctl version 5.3 and above includes
a default calibration setting, which allows you to set attenuation in dB but it may not be accurate.
You need to calibrate all VOAs to
get better accuracy. Please refer to calibration section in this document for
the details. |
-B
option
The
-B option is used to set the attenuation in dB.
$ osctl -B {<port-group>
| <in-port#>} [ <dB [1-25]>]
Examples:
$ osctl -B 1 5
à set attenuation of
port#1 to 5 dB
$ osctl -B 1
àdisplays current
attenuation of port#1
Web Interface |
In
order to access the VFC1011 Web interface just enter its IP address on URL
address bar of the web browser.
Following
screen shot shows how the Web interface for VFC1011 looks like…
The Web interface for the Echola device is not secured by default as the browser doesn’t trust the device’s SSL self-signed certificate. Keeping your connection secure prevents cybercriminals from stealing sensitive data, such as your login credentials. To establish a secured HTTP connection to the Echola device, follow the following steps.
(a) Click on the “Not Secure” Browser’s URL tab
(b) Click on “Certificate not valid” from the pulldown menu
(c) Select the “Details” tab
(d) Click on the “Export” button to save the certificate to a local file.
Step (2): Import Saved Certificate to make it a trusted certificate by the Chrome browser
(a) Select Chrome’s Settings-> Security-> Manage Certificates
(b) Select “Trusted Root Certification Authorities” from the top tabs of “Managed Certificates.”
(c) Click on the “Import” button to import the saved certificate
Step (3): Add following line to the file C:\Windows\System32\drivers\etc\hosts
192.168.1.62 echola.sys
After saving the hosts file, point your browser to https://echola.sys, and you should be able to establish a secured (HTTPS) connection to Echola device. Though the above steps are meant for Windows 11/Chrome, similar steps work for other OSs and Browsers.
Custom Self-signed Certificate
To create your custom self-signed certificate, you can run a helper script “ss_cert.sh” from the Echola device command line. This way, you can use the Echola device IP address or a domain name of your choice. You must follow the first two steps to use an IP address as your common name. If you select a domain name, follow all three steps above to reinstall the certificate on your Windows system.
Control page
The default page for the Web Application is
the 'Set Attenuation' page. If you set it to the lowest attenuation then the
switch is fully 'ON', similarly the highest attenuation sets it to 'OFF'. You
can also set the attenuation in increments of 1 dB using the slider or 1/10th
of a dB using the text input box. Each port must be calibrated to get the
required accuracy you want. The calibration is a little laborious but it is a
one-time task done at the time of deployment. There is a web page under
maintenance which helps to make this calibration easier.
Setup page
The setup page allows you to change Hostname,
Static IP address configuration and Dynamic IP (DHCP). Initially it shows the
current set values. You can change them by clicking on the corresponding field.
Note that changing the IP, Gateway, Mask or DHCP setting will make the switch reboot!
Device Info page
Device Info page shows hardware and software
information such as model and version.
Maintenance page
This page can be used to "Reset/Reboot"
the system or calibrate the VOA. The calibration of the VOA requires a laser
source and an optical meter. Please contact support@echola.com for calibration details.
VOA Attenuation vs
Drive Voltage graph |
The VOA drive voltage is 0-5V and the hardware is capable
of 256 steps resolution. You can see from the below graph that they are not
linear and varies between each VOAs
VOA In-house Calibration |
|
Please note the accuracy of the calibration depends on
quality of laser source/reference, optical power meter and fiber connecters/coupling/adapter
that you use in the calibration setup. Also try to use wavelength and CW/modulation
settings of the laser source close to that of production.
Each port has to be
calibrated individually. The above diagram shows the setup for one port, you
will have to repeat the same calibration procedure for all 10 ports. Laser
source can be of either 1310nm or a 1510nm wavelength or even tunable laser
depending on production requirement.
You will need a PC or a Laptop
or a Tablet right in front of the setup to run the calibration web application from
the device web page (under Maintenance tab select Calibration). This web page
allows to change attenuation in real time. There are 26 values in total that
need to be entered to complete each port's calibration. The other values will
be interpolated by the software to fill in the whole 0 to 255 range.
Automating Echola's Optical Switches |
Our
REST APIs accept JSON request bodies, returns JSON-encoded responses, and uses
standard HTTP response codes, authentication (basic), and verbs (GET and PUT
only). The following table summarizes the available APIs.
Method |
URI |
Action |
Request
(body) data |
GET |
https://[host_ip]/api/ports |
Retrieve all ports state |
|
GET |
https://[host_ip]/api/ports/[port_#] |
Retrieve specific port's state |
|
PUT |
https://[host_ip]/api/ports/[port_#] |
Switch On | Off a specific port |
{"state":<on |
off>} |
GET |
https://[host_ip]/api/voa |
Retrieve all ports attenuation |
|
GET |
https://[host_ip]/api/voa/[port_#] |
Retrieve specific port's
attenuation |
|
PUT |
https://[host_ip]/api/voa/[port_#] |
Set attenuation of a specific port |
{"attenuation":<data>} |
GET |
https://[host_ip]/api/voadb |
Retrieve all ports attenuation in
dB |
|
GET |
https://[host_ip]/api/voadb/[port_#] |
Retrieve specific port attenuation in dB |
|
PUT |
https://[host_ip]/api/voadb/[port_#] |
Set attenuation of a specific port
in dB |
{"attenuation":<data>} |
Examples:
1. The following example shows how the attenuation of port 1 can be set using a 'curl' command line script. Please note, it is not a good practice to use password on command line directly as shown below. Alternatively, you could use curl with --netrc-file option and protect the password file with the appropriate permissions.
curl -X PUT \
-u admin:admin \
-H "Content-Type:
application/json" \
-d '{"attenuation":
"159"}' \
-k https://192.168.1.120/api/voa/1
2. Following command returns the state of the port 2 (whether it is ON or OFF)
curl -u admin:admin
\
-H
"Content-Type: application/json" \
-k
https://192.168.1.120/api/ports/2
responds with
{"state":"on"}
3.
Following
command returns the attenuation of port 1
curl -u admin:admin
\
-H
"Content-Type: application/json" \
-k
https://192.168.1.120/api/voa/1
responds with
{"attenuation":"159"}
4.
Following
command switches port 2 to OFF
curl -u admin:admin
-X PUT \
-H "Content-Type: application/json" \
-d '{"state": "off"}' \
-k https://192.168.1.120/api/ports/2
5.
Following
command sets, the attenuation of port 1 with an endpoint which accepts input in
dB
curl -X PUT \
-u admin:admin \
-H
"Content-Type: application/json" \
-d
'{"attenuation": "10"}' \
-k
https://192.168.1.120/api/voadb/1
VFC1011
configuration or monitoring can be automated using osctl
command available on the switch using an external terminal automation tools
such as Tcl/Expect. Unlike RESTful API which supports
limited configurations, the osctl command supports
all configurations including network.
Running scripts from
Unix/Linux systems
If
you want to run the script from a Unix/Linux based machines then there is
possibility that you may have these tools on your system. Check if it's already
been installed by typing "expect" from the Unix/Linux prompt. If it
is not installed then you will have to install it using package install tool
for that particular flavor of Unix/Linux. For instance, on Fedora core Linux,
you can use "yum install tcl expect" to
install Tcl and Expect.
Running scripts from
Windows
For
Windows based systems you can install the Windows free community version of ActiveTcl from Activestate then
make sure to install "expect" using the command "teacup install
Expect".
Also,
you need to enable "telnet" client on Windows before running any
scripts. To enable telnet on Windows follow these steps
1.
Start
2.
Control
Panel
3.
Programs
and Features
4.
Turn
Windows features on or off
5.
Check
Telnet Client Hit OK
After
that you can start Telnet via Command Prompt to check if it works.
The
following sample script logs into VFC1011/VFC1011 switch and issue a switch
command then check whether the switch command was successful and return the
result before terminating the telnet session. This script takes an argument
(port number and state of the port (on/off)) from the command line argument.
Cut and Paste the following script on to any editor and save as "rosctl". Then you can run the script by issuing rosctl -p <port#> on|off. For instance, to switch port 2 to ON, you can
call the script as rosctl -p 2 on. Make sure you have
a proper path set for Expect on first line "#!/usr/bin/expect"
for Unix/Linux based systems. For Windows, you will have to uncomment 'exec'
and 'package' commands as mentioned in the script. All comments inside '#'
provide more info on what the script is doing.
Sample
Tcl/Expect script Using 'osctl'
CLI
#!/usr/bin/expect
##############################################################################
#
This script switches the given port and verifies if the port is switched from a
remote machine
# Command Usage: rosctl
-p <port#> on|off
##############################################################################
#
For windows uncomment following
# exec tclsh "$0"
${1+"$@"}
# package require Expect
#
Check number of arguments passed to this command if < 3 then spit out error
& exit
if { $argc <
3 } {
puts "Usage: rosctl -p <port#> on|off\n"
exit 1
}
#
Set telnet host, username, password and other parameters, modify these to
reflect your setup
set hostname "192.168.2.20"
set username "osctl"
set password "osctl"
set prompt "osctl@.*\$"
set port [lindex
$argv 1]
set status [lindex
$argv 2]
set commandcontrol
"osctl -p $port $status"
set commandstatus
"osctl -s $port"
#
Display info.
puts "Connecting to $hostname."
#
Connect to the telnet server using the "spawn" command.
spawn telnet $hostname
#spawn C:\Putty\putty.exe -telnet
$hostname
#
Wait for a login prompt.
expect -re "(Name|login|Login|Username).*:.*"
{
# Login prompt received. Send user
name to VFC1011/VFC1011.
send "$username\r"
} eof {
# No login prompt received. Display
an error.
puts "could not connect\n"
}
#
Wait for a password prompt from the Unix server.
expect "Password:" {
# Password prompt received. Send the
password.
send "$password\r"
}
#
Wait for the switch prompt.
expect -re $prompt {
# Issue osctl
command to switch given port
send "$commandcontrol\r"
}
#
Wait for the switch prompt again to check status.
expect -re $prompt {
# Issue osctl
command to check status
send "$commandstatus\r"
}
#
Discard echoed command - we need only the status
expect "$commandstatus\r"
#
Discard unwanted prompt as well
expect -re "(.*)$prompt"
#Debug
#puts "\nGOT*****$expect_out(buffer)***************\n"
#puts "\n GOTS
####$expect_out(1,string)#####\n"
#
Save remaining to buffer 'data'
set data $expect_out(1,string)
#
Check return status and display result accordingly
switch -re $data {
"off" { puts "Port
$port is OFF" }
"on" { puts "Port
$port is ON" }
default { puts "Port
$port status is unknown" }
}
#
Terminate telnet
send
"exit\r"
Hardware
Specifications |
Electrical |
|
Input
Power |
100-240 AC |
Total
Power Consumption |
< 7
Watts |
Serial
Port |
1x
micro-USB |
Networking |
1x 10/100
Ethernet |
Optical Specification for FC Series |
|
Connectivity |
10 duplex
LC connectors |
Data
rate |
Any data
rate - Physical Layer Switch, no limitation |
Wavelength
(nm) |
Multi-mode version: 850/1310 nm Single-mode version: 1280-1625 nm |
Optical
Technology |
VOA |
Insertion
Loss (dB) |
0.5
Typical, 0.8 Max. (without connectors) |
Switching
Time (ms) |
≤ 10 |
Crosstalk
(dB) |
≤ -80 |
Repeatability
(dB) |
≤ 0.1 |
Optical Specification for VFC Series
(SM) |
|
Connectivity |
10 duplex
LC connectors |
Data
rate |
Any data
rate - Physical Layer Switch, no limitation |
Display |
OLED (1
inch) |
Wavelength
(nm) |
1310±50nm & 1550±50nm |
Optical
Technology |
MEMS VOA |
Insertion
Loss (dB) |
< 0.8 dB
(without connectors) |
Switching
Time (ms) |
≤ 5 |
Crosstalk
(dB) |
≥ 65 |
Attenuation
Dynamic Range (dB) |
> 30 |
Attenuation
Resolution (steps) |
256 steps |
Optical
Power Handling (mW) |
≤
250mW/channel |
Environmental |
|
Operating
Temperature (ºC) |
-5 ~ +75 |
Storage
Temperature (ºC) |
-40 ~ +85 |
Relative
Humidity Range (%) |
0 ~ 85 |
General Software Info |
è
This
device runs Debian distribution of the Linux OS. Most of the Debian tools can
be used as is for debugging purpose.
è
All
the group information is stored in a hidden XML database file. If for some
reason this file is corrupt, the system will recover from this error by trying
to copy the backup database file. If this happens it will throw a warning
message but it is not guaranteed that all the group information will be
restored correctly. In that case you may need to recreate missing groups.
è
For
adding additional users, you can use Linux's "useradd"
command. You have to be "root" in order to add new user to the
system.
è Contact Info |
If
you have any technical questions and need help you can send email to support@echola.com. You can also download latest documents and
software from our website www.echola.com/optical.