vMX Initial Configuration

This article contains how I configure the vMX virtual router hosted in Ubuntu VM. Before starting I like to make a clear diagram into my head. 🙂

0. vMX Logical Network Diagram

Next table contains a summary of the external interfaces related to vMX. Internal back-to-back interfaces are not included in this table.

Network Connected Device Device Port Info IP
vmnet3 vMX – VCP fxp0 OoB MNG Net 192.168.83.11
vMX – VFP vfp-int OoB MNG Net 192.168.83.12
vmnet4 vMX – Logical Systems ge-0/0/8 Intelink with VLANs not configured
vMX – Ubuntu Server eth1 Intelink with VLANs 172.16.109.10
vmnet5 vMX – Logical Systems ge-0/0/9 Intelink with VLANs not configured
vMX – Ubuntu Server eth2 Intelink with VLANs 192.168.50.10

Note: vmnet4 and vmnet5 are the networks where I will connect vSRX and XRv devices.

1. Ubuntu Host VM Interfaces Configuration

I configure Ubuntu Host VM interfaces into my recent article Ubuntu VM Network Configuration. When I reboot using sudo reboot the VM and get into the system using ssh I get this output:

Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Mon Nov 20 13:55:47 EET 2017

System load: 0.15 Processes: 407
 Usage of /: 23.4% of 48.11GB Users logged in: 0
 Memory usage: 1% IP address for eth0: 192.168.83.10
 Swap usage: 0% IP address for eth1: 172.16.109.10

Graph this data and manage this system at:
 https://landscape.canonical.com/

259 packages can be updated.
160 updates are security updates.

2. vMX VM Installation

I have installed vMX virtual router using Day One: vMX UP and Running book available on Juniper Networks website. The vMX VM deployment is out of the scope of this article.

3. HOST, VCP/vRE and VFP/vPFE Configuration

 silvia@vMX-ubuntu:~$ cd vmx-15.1F4-3/
 silvia@vMX-ubuntu:~/vmx-15.1F4-3$ cd config/
 silvia@vMX-ubuntu:~/vmx-15.1F4-3/config$ cat vmx.conf
 ##############################################################
 #
 # vmx.conf
 # Config file for vmx on the hypervisor.
 # Uses YAML syntax.
 # Leave a space after ":" to specify the parameter value.
 #
 ##############################################################

---
 #Configuration on the host side - management interface, VM images etc.
 HOST:
   identifier : vmx1 # Maximum 4 characters
   host-management-interface : eth0 <<-- Make sure here is the OoB MNG interface from Ubuntu VM
   routing-engine-image : "/home/silvia/vmx-15.1F4-3/images/jinstall64-vmx-15.1F4.15-domestic.img"
   routing-engine-hdd : "/home/silvia/vmx-15.1F4-3/images/vmxhdd.img"
   forwarding-engine-image : "/home/silvia/vmx-15.1F4-3/images/vFPC-20151203.img"

---
 #External bridge configuration
 BRIDGES:
   - type : external
     name : br-ext # Max 10 characters

---
 #vRE VM parameters
 CONTROL_PLANE:
   vcpus : 1
   memory-mb : 1024
   console_port: 8601

   interfaces :
      - type : static
        ipaddr : 192.168.83.11 <<-- Make sure here is the OoB MNG IP Add
        macaddr : "0A:00:DD:C0:DE:0E"

---
 #vPFE VM parameters
 FORWARDING_PLANE:
   memory-mb : 4096
   vcpus : 3
   console_port: 8602
   device-type : virtio

   interfaces :
     - type : static
       ipaddr : 192.168.83.12 <<-- Make sure here is the OoB MNG IP Add / same IP Subnet as vRE
       macaddr : "0A:00:DD:C0:DE:10"

---
 #Interfaces
 JUNOS_DEVICES: <<-- Maximum 10 are supported
   - interface : ge-0/0/0
     mac-address : "02:06:0A:0E:FF:F0"
     description : "ge-0/0/0 interface"

   - interface : ge-0/0/1
     mac-address : "02:06:0A:0E:FF:F1"
     description : "ge-0/0/1 interface"

   - interface : ge-0/0/2
     mac-address : "02:06:0A:0E:FF:F2"
     description : "ge-0/0/2 interface"

   - interface : ge-0/0/3
     mac-address : "02:06:0A:0E:FF:F3"
     description : "ge-0/0/3 interface"

   - interface : ge-0/0/4
     mac-address : "02:06:0A:0E:FF:F4"
     description : "ge-0/0/4 interface"

   - interface : ge-0/0/5
     mac-address : "02:06:0A:0E:FF:F5"
     description : "ge-0/0/5 interface"

   - interface : ge-0/0/6
     mac-address : "02:06:0A:0E:FF:F6"
     description : "ge-0/0/6 interface"

   - interface : ge-0/0/7
     mac-address : "02:06:0A:0E:FF:F7"
     description : "ge-0/0/7 interface"

   - interface : ge-0/0/8
     mac-address : "02:06:0A:0E:FF:F8"
     description : "ge-0/0/8 interface"

   - interface : ge-0/0/9
     mac-address : "02:06:0A:0E:FF:F9"
     description : "ge-0/0/9 interface"

4. Interfaces configuration (virtio)

Edit vmx-junosdev.conf file. I have used vi editor.

silvia@vMX-ubuntu:~$ cd vmx-15.1F4-3/config/
silvia@vMX-ubuntu:~/vmx-15.1F4-3/config$ vi vmx-junosdev.conf

Pres [i] to enter Insert mode. Edit the file according to the connectivity design. Pres [esc] to exit Insert mode. Then type :wq! to write and quit vi editor.

silvia@vMX-ubuntu:~/vmx-15.1F4-3/config$ cat vmx-junosdev.conf 
##############################################################
#
# vmx-junos-dev.conf
# - Config file for junos device bindings.
# - Uses YAML syntax. 
# - Leave a space after ":" to specify the parameter value.
# - For physical NIC, set the 'type' as 'host_dev'
# - For junos devices, set the 'type' as 'junos_dev' and
# set the mandatory parameter 'vm-name' to the name of
# the vPFE where the device exists
# - For bridge devices, set the 'type' as 'bridge_dev'
#
##############################################################
interfaces :

  - link_name : vmx_link1
    mtu : 1500
    endpoint_1 : 
      - type : junos_dev
        vm_name : vmx1 
        dev_name : ge-0/0/0
    endpoint_2 :
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/1

  - link_name : vmx_link2
    mtu : 1500
    endpoint_1 : 
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/2
    endpoint_2 :
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/3

  - link_name : vmx_link3
    endpoint_1 : 
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/4
    endpoint_2 :
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/5

  - link_name : vmx_link4
    endpoint_1 : 
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/6
    endpoint_2 :
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/7
 
  - link_name : vmx_link5
    endpoint_1 : 
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/8
    endpoint_2 :
      - type : host_dev
        dev_name : eth1

  - link_name : vmx_link6
    endpoint_1 :
      - type : junos_dev
        vm_name : vmx1
        dev_name : ge-0/0/9
    endpoint_2 :
      - type : host_dev
        dev_name : eth2

5. vMX RE-Installation

I will reinstall my vMX using the edited configuration files and the orchestration scrip vmx.sh.

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh -lv --install
[sudo] password for silvia: 
==================================================
 Welcome to VMX
==================================================
Date..............................................11/20/17 14:00:45
VMX Identifier....................................vmx1
Config file......................................./home/silvia/vmx-15.1F4-3/config/vmx.conf
Build Directory.................................../home/silvia/vmx-15.1F4-3/build/vmx1
Environment file................................../home/silvia/vmx-15.1F4-3/env/ubuntu_virtio.env
Junos Device Type.................................virtio
Initialize scripts................................[OK]
Copy images to build directory....................[OK]
==================================================
 VMX Environment Setup Completed
==================================================
==================================================
 VMX Install & Start
==================================================
Linux distribution................................ubuntu
Check GRUB........................................[Disabled]
Installation status of qemu-kvm...................[OK]
Installation status of libvirt-bin................[OK]
Installation status of bridge-utils...............[OK]
Installation status of python.....................[OK]
Installation status of libyaml-dev................[OK]
Installation status of python-yaml................[OK]
Installation status of numactl....................[OK]
Installation status of libnuma-dev................[OK]
Installation status of libparted0-dev.............[OK]
Installation status of libpciaccess-dev...........[OK]
Installation status of libyajl-dev................[OK]
Installation status of libxml2-dev................[OK]
Installation status of libglib2.0-dev.............[OK]
Installation status of libnl-dev..................[OK]
Check Kernel Version..............................[Disabled]
Check Qemu Version................................[Disabled]
Check libvirt Version.............................[Disabled]
Check virsh connectivity..........................[OK]
IXGBE Enabled.....................................[Disabled]
==================================================
 Pre-Install Checks Completed
==================================================
Check for VM vcp-vmx1.............................[Not Running]
Check for VM vfp-vmx1.............................[Not Running]
Cleanup VM states.................................[OK]
Check if bridge br-ext exists.....................[No]
Cleanup VM bridge br-ext..........................[OK]
Cleanup VM bridge br-int-vmx1.....................[OK]
==================================================
 VMX Stop Completed
==================================================
Check VCP image...................................[OK]
Check VFP image...................................[OK]
VMX Model.........................................FPC
Check VCP Config image............................[OK]
Check management interface........................[OK]
Setup huge pages to 8192..........................[OK]
Attempt to kill libvirt...........................[OK]
Attempt to start libvirt..........................[OK]
Sleep 2 secs......................................[OK]
Check libvirt support for hugepages...............[OK]
==================================================
 System Setup Completed
==================================================
Get Management Address of eth0....................[OK]
Generate libvirt files............................[OK]
Sleep 2 secs......................................[OK]
Find configured management interface..............eth0
Find existing management gateway..................eth0
Check if eth0 is already enslaved to br-ext.......[No]
Gateway interface needs change....................[Yes]
Create br-ext.....................................[OK]
Get Management Gateway............................192.168.83.1
Flush eth0........................................[OK]
Start br-ext......................................[OK]
Bind eth0 to br-ext...............................[OK]
Get Management MAC................................00:0c:29:9e:bb:5b
Assign Management MAC 00:0c:29:9e:bb:5b...........[OK]
Add default gw 192.168.83.1.......................[OK]
Create br-int-vmx1................................[OK]
Start br-int-vmx1.................................[OK]
Check and start default bridge....................[OK]
Define vcp-vmx1...................................[OK]
Define vfp-vmx1...................................[OK]
Wait 2 secs.......................................[OK]
Start vcp-vmx1....................................[OK]
Start vfp-vmx1....................................[OK]
Wait 2 secs.......................................[OK]
==================================================
 VMX Bringup Completed
==================================================
Check if br-ext is created........................[Created]
Check if br-int-vmx1 is created...................[Created]
Check if VM vcp-vmx1 is running...................[Running]
Check if VM vfp-vmx1 is running...................[Running]
Check if tap interface vcp_ext-vmx1 exists........[OK]
Check if tap interface vcp_int-vmx1 exists........[OK]
Check if tap interface vfp_ext-vmx1 exists........[OK]
Check if tap interface vfp_int-vmx1 exists........[OK]
==================================================
 VMX Status Verification Completed.
==================================================
Log file........................................../home/silvia/vmx-15.1F4-3/build/vmx1/logs/vmx_1511179244.log
==================================================
 Thankyou for using VMX
==================================================

6. Interfaces binding creation

First, let’s review what Linux bridges the vMX script just created when the vMX instance was deployed. This is done using the shell brctl show command:

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ brctl show
bridge name bridge id STP enabled interfaces
br-ext 8000.000c299ebb5b   yes    br-ext-nic 
 ^-- the external bridge that is used for management of the vMX and the KVM host.                                 
                                  eth0
                                  vcp_ext-vmx1
                                  vfp_ext-vmx1
br-int-vmx1 8000.5254007e46ae yes br-int-vmx1-nic
 ^--the internal bridge that is used for communication between the VCP and VFP
                                  vcp_int-vmx1
                                  vfp_int-vmx1
virbr0 8000.52540007eaed   yes    ge-0.0.0-vmx1
                                  ge-0.0.1-vmx1
                                  ge-0.0.2-vmx1
                                  ge-0.0.3-vmx1
                                  ge-0.0.4-vmx1
                                  ge-0.0.5-vmx1
                                  ge-0.0.6-vmx1
                                  ge-0.0.7-vmx1
                                  ge-0.0.8-vmx1
                                  ge-0.0.9-vmx1
                                  virbr0-nic

Next, let’s check that the virtio binding has not been activated. Again I will use the orchestration script that Juniper provide with vMX:

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh --bind-check
Checking package ethtool..........................[OK]
Check Link vmx_link1(ge-0.0.0-vmx1, ge-0.0.1-vmx1)
[Not Present]
Check Link vmx_link2(ge-0.0.2-vmx1, ge-0.0.3-vmx1)
[Not Present]
Check Link vmx_link3(ge-0.0.4-vmx1, ge-0.0.5-vmx1)
[Not Present]
Check Link vmx_link4(ge-0.0.6-vmx1, ge-0.0.7-vmx1)
[Not Present]
Check Link vmx_link5(ge-0.0.8-vmx1, eth1).........[Not Present]
Check Link vmx_link6(ge-0.0.9-vmx1, eth2).........[Not Present]

Using –bind-dev option, I will create the binding:

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh --bind-dev
Checking package ethtool..........................[OK]
Bind Link vmx_link1(ge-0.0.0-vmx1, ge-0.0.1-vmx1)
[OK]
Bind Link vmx_link2(ge-0.0.2-vmx1, ge-0.0.3-vmx1)
[OK]
Bind Link vmx_link3(ge-0.0.4-vmx1, ge-0.0.5-vmx1)
[OK]
Bind Link vmx_link4(ge-0.0.6-vmx1, ge-0.0.7-vmx1)
[OK]
Bind Link vmx_link5(ge-0.0.8-vmx1, eth1)..........[OK]
Numa node for eth1................................-1
Cores servicing numa node -1......................
Pid of vfp-vmx1...................................8540
Pin vhost-8540 (PID=8552) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8551) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8550) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8549) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8548) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8547) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8546) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8545) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8544) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8543) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8542) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Pin vhost-8540 (PID=8541) to cores ...............taskset: failed to parse CPU list: 
[Failed]
Bind Link vmx_link6(ge-0.0.9-vmx1, eth2)..........[OK]

^– The taskset command is used to achieve better performance in virtio mode.

I chose to ignore the error for the current purposes of my lab as long as the bindings are present:

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh --bind-check
Checking package ethtool..........................[OK]
Check Link vmx_link1(ge-0.0.0-vmx1, ge-0.0.1-vmx1)
[OK]
Check Link vmx_link2(ge-0.0.2-vmx1, ge-0.0.3-vmx1)
[OK]
Check Link vmx_link3(ge-0.0.4-vmx1, ge-0.0.5-vmx1)
[OK]
Check Link vmx_link4(ge-0.0.6-vmx1, ge-0.0.7-vmx1)
[OK]
Check Link vmx_link5(ge-0.0.8-vmx1, eth1).........[OK]
Check Link vmx_link6(ge-0.0.9-vmx1, eth2).........[OK]

Another interesting view of host ifconfig output.

silvia@vMX-ubuntu:~$ ifconfig | grep -A 1 encap
br-ext Link encap:Ethernet HWaddr 00:0c:29:9e:bb:5b 
      inet addr:192.168.83.10 Bcast:192.168.83.255 Mask:255.255.255.0
--
br-int-vmx1 Link encap:Ethernet HWaddr 52:54:00:fa:1a:e1 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
--
eth0 Link encap:Ethernet HWaddr 00:0c:29:9e:bb:5b 
     inet6 addr: fe80::20c:29ff:fe9e:bb5b/64 Scope:Link
--
eth1 Link encap:Ethernet HWaddr 00:0c:29:9e:bb:65 
     inet addr:172.16.109.10 Bcast:172.16.109.255 Mask:255.255.255.0
--
eth2 Link encap:Ethernet HWaddr 00:0c:29:9e:bb:6f 
     inet addr:192.168.50.10 Bcast:192.168.50.255 Mask:255.255.255.0
--
ge-0.0.0-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f0 
     inet6 addr: fe80::fc06:aff:fe0e:fff0/64 Scope:Link
--
ge-0.0.1-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f1 
     inet6 addr: fe80::fc06:aff:fe0e:fff1/64 Scope:Link
--
ge-0.0.2-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f2 
     inet6 addr: fe80::fc06:aff:fe0e:fff2/64 Scope:Link
--
ge-0.0.3-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f3 
     inet6 addr: fe80::fc06:aff:fe0e:fff3/64 Scope:Link
--
ge-0.0.4-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f4 
     inet6 addr: fe80::fc06:aff:fe0e:fff4/64 Scope:Link
--
ge-0.0.5-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f5 
     inet6 addr: fe80::fc06:aff:fe0e:fff5/64 Scope:Link
--
ge-0.0.6-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f6 
     inet6 addr: fe80::fc06:aff:fe0e:fff6/64 Scope:Link
--
ge-0.0.7-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f7 
     inet6 addr: fe80::fc06:aff:fe0e:fff7/64 Scope:Link
--
ge-0.0.8-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f8 
     inet6 addr: fe80::fc06:aff:fe0e:fff8/64 Scope:Link
--
ge-0.0.9-vmx1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f9 
     inet6 addr: fe80::fc06:aff:fe0e:fff9/64 Scope:Link
--
lo Link encap:Local Loopback 
     inet addr:127.0.0.1 Mask:255.0.0.0
--
vcp_ext-vmx1 Link encap:Ethernet HWaddr fe:00:dd:c0:de:0e 
     inet6 addr: fe80::fc00:ddff:fec0:de0e/64 Scope:Link
--
vcp_int-vmx1 Link encap:Ethernet HWaddr fe:54:00:1f:5d:9c 
     inet6 addr: fe80::fc54:ff:fe1f:5d9c/64 Scope:Link
--
vfp_ext-vmx1 Link encap:Ethernet HWaddr fe:00:dd:c0:de:10 
     inet6 addr: fe80::fc00:ddff:fec0:de10/64 Scope:Link
--
vfp_int-vmx1 Link encap:Ethernet HWaddr fe:54:00:f1:04:f1 
     inet6 addr: fe80::fc54:ff:fef1:4f1/64 Scope:Link
--
virbr0 Link encap:Ethernet HWaddr 52:54:00:07:ea:ed 
     inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
--
vmx_link1 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f0 
     inet6 addr: fe80::3cb1:36ff:fe47:58ee/64 Scope:Link
--
vmx_link2 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f2 
     inet6 addr: fe80::c432:7dff:fe91:f80e/64 Scope:Link
--
vmx_link3 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f4 
     inet6 addr: fe80::1cf7:7dff:fead:7ef5/64 Scope:Link
--
vmx_link4 Link encap:Ethernet HWaddr fe:06:0a:0e:ff:f6 
     inet6 addr: fe80::54f2:5fff:fe72:6601/64 Scope:Link
--
vmx_link5 Link encap:Ethernet HWaddr 00:0c:29:9e:bb:65 
     inet6 addr: fe80::cb1:6ff:fe88:a4e1/64 Scope:Link
--
vmx_link6 Link encap:Ethernet HWaddr 00:0c:29:9e:bb:6f 
     inet6 addr: fe80::2c26:b8ff:fed3:fd8d/64 Scope:Link

7. Connect to VFP using serial console

I will check my VFP serial console connectivity using user root and password root as configured default.

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh --console vfp vmx1 
--
Login Console Port For vfp-vmx1 - 8602
Press Ctrl-] to exit anytime
--
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.


Wind River Linux 6.0.0.12 vfp-vmx1 console

vfp-vmx1 login: root
Password: root

Here I can check logs:

root@vfp-vmx1:~# cd /var/log/ 
root@vfp-vmx1:/var/log# ls
boot riot.lcore.15.log riot.lcore.33.log riot.lcore.51.log
lastlog riot.lcore.16.log riot.lcore.34.log riot.lcore.52.log
messages riot.lcore.17.log riot.lcore.35.log riot.lcore.53.log
messages.0 riot.lcore.18.log riot.lcore.36.log riot.lcore.54.log
messages.1 riot.lcore.19.log riot.lcore.37.log riot.lcore.55.log
messages.2 riot.lcore.2.log riot.lcore.38.log riot.lcore.56.log
messages.3 riot.lcore.20.log riot.lcore.39.log riot.lcore.57.log
messages.4 riot.lcore.21.log riot.lcore.4.log riot.lcore.58.log
pfe.log riot.lcore.22.log riot.lcore.40.log riot.lcore.59.log
pfe.log.0 riot.lcore.23.log riot.lcore.41.log riot.lcore.6.log
pfe.log.1 riot.lcore.24.log riot.lcore.42.log riot.lcore.60.log
pfe.log.2 riot.lcore.25.log riot.lcore.43.log riot.lcore.61.log
pfe.log.3 riot.lcore.26.log riot.lcore.44.log riot.lcore.62.log
riot.lcore.0.log riot.lcore.27.log riot.lcore.45.log riot.lcore.63.log
riot.lcore.1.log riot.lcore.28.log riot.lcore.46.log riot.lcore.7.log
riot.lcore.10.log riot.lcore.29.log riot.lcore.47.log riot.lcore.8.log
riot.lcore.11.log riot.lcore.3.log riot.lcore.48.log riot.lcore.9.log
riot.lcore.12.log riot.lcore.30.log riot.lcore.49.log wtmp
riot.lcore.13.log riot.lcore.31.log riot.lcore.5.log
riot.lcore.14.log riot.lcore.32.log riot.lcore.50.log

!!! Some logs show up into this console. The can’t open ‘/var/jnx/card/local/type’ portion I remember from Junos vMX Router on VMWare Fusion article I’ve written 2 days ago. Interesting!

RPIO: Lost connection from localhost <-> localhost:3001
start_riot.sh: line 105: 3020 Killed /home/pfe/riot/build/app/riot -c 0x7 -n 2 -- --rx "(0,0,0,1),(1,0,1,1),(2,0,2,1),(3,0,3,1),(4,0,4,1),(5,0,5,1),(6,0,6,1),(7,0,7,1),(8,0,8,1),(9,0,9,1)," --tx "(0,1),(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1)," --w "2" --rpio "local,3000,3001" --hostif "local,3002" --bsz "(32,32),(32,32),(32,32)"
mpc :
cat: can't open '/var/jnx/card/local/type': No such file or directory
tx_hello_tx: Failed to get card type defaulting to 0
cat: can't open '/var/jnx/card/local/slot': No such file or directory
tx_hello_tx: Failed to get card slot defaulting to 0
tnp_hello_tx: Board type 0
tnp_hello_tx: Board slot 0
SETTING UP DPDK ENVIRONMENT ON
Linux vfp-vmx1 3.10.38-ltsi-rt34-WR6.0.0.12_preempt-rt #1 SMP PREEMPT RT Wed Dec 2 16:34:33 PST 2015 x86_64 GNU/Linux
dpdk_setup.sh: line 21: make: command not found
insmod: can't insert '/home/pfe/riot/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko': File exists
Creating /mnt/huge and mounting as hugetlbfs
Detected Junos Device type VirtIO
bind interface 00:05.0 00:06.0 00:07.0 00:08.0 00:09.0 00:0a.0 00:0b.0 00:0c.0 00:0d.0 00:0e.0 from UIO
uio device registered with irq 2e
uio device registered with irq 2f
uio device registered with irq 30
uio device registered with irq 31
uio device registered with irq 32
uio device registered with irq 33
uio device registered with irq 34
uio device registered with irq 35
uio device registered with irq 36
uio device registered with irq 37
OK
kernel.core_pattern = /var/crash/core.%e.%t.%p.gz
Number of CPUs available : 3
Number of PORTs to service : 10
/home/pfe/riot/build/app/riot -c 0x7 -n 2 -- --rx "(0,0,0,1),(1,0,1,1),(2,0,2,1),(3,0,3,1),(4,0,4,1),(5,0,5,1),(6,0,6,1),(7,0,7,1),(8,0,8,1),(9,0,9,1)," --tx "(0,1),(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1)," --w "2" --rpio "local,3000,3001" --hostif "local,3002" --bsz "(32,32),(32,32),(32,32)"
EAL: Setting up memory...
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4057600000 (size = 0x200000)
EAL: Ask a virtual area of 0x9400000 bytes
EAL: Virtual area found at 0x7f404e000000 (size = 0x9400000)
EAL: Ask a virtual area of 0x3b800000 bytes
EAL: Virtual area found at 0x7f4012600000 (size = 0x3b800000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4012200000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4011e00000 (size = 0x200000)
EAL: Ask a virtual area of 0xe400000 bytes
EAL: Virtual area found at 0x7f4003800000 (size = 0xe400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4003400000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4003000000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4002c00000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4002800000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7f4002200000 (size = 0x400000)
EAL: Ask a virtual area of 0x2400000 bytes
EAL: Virtual area found at 0x7f3fffc00000 (size = 0x2400000)
EAL: Ask a virtual area of 0x800000 bytes
EAL: Virtual area found at 0x7f3fff200000 (size = 0x800000)
EAL: Ask a virtual area of 0x1400000 bytes
EAL: Virtual area found at 0x7f3ffdc00000 (size = 0x1400000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7f3ffd600000 (size = 0x400000)
EAL: Ask a virtual area of 0x3400000 bytes
EAL: Virtual area found at 0x7f3ffa000000 (size = 0x3400000)
EAL: Ask a virtual area of 0x800000 bytes
EAL: Virtual area found at 0x7f3ff9600000 (size = 0x800000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff9200000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff8e00000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7f3ff8800000 (size = 0x400000)
EAL: Ask a virtual area of 0x600000 bytes
EAL: Virtual area found at 0x7f3ff8000000 (size = 0x600000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7f3ff7a00000 (size = 0x400000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff7600000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff7200000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff6e00000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff6a00000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff6600000 (size = 0x200000)
EAL: Ask a virtual area of 0x600000 bytes
EAL: Virtual area found at 0x7f3ff5e00000 (size = 0x600000)
EAL: Ask a virtual area of 0xc00000 bytes
EAL: Virtual area found at 0x7f3ff5000000 (size = 0xc00000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff4c00000 (size = 0x200000)
EAL: Ask a virtual area of 0x400000 bytes
EAL: Virtual area found at 0x7f3ff4600000 (size = 0x400000)
EAL: Ask a virtual area of 0x600000 bytes
EAL: Virtual area found at 0x7f3ff3e00000 (size = 0x600000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff3a00000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f3ff3600000 (size = 0x200000)
EAL: Requesting 768 pages of size 2MB from socket 0
EAL: TSC frequency is ~2903905 KHz
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
EAL: 0000:00:03.0 not managed by UIO driver, skipping
EAL: 0000:00:04.0 not managed by UIO driver, skipping
CONFIG: --f argument not given : Flow caching will not be enabled
INIT: Creating the mbuf pool for socket 0 ...
INIT: Creating ring with priority 0 to connect I/O lcore 1 (socket 0) with worker lcore 2 ...
INIT: Creating ring with priority 1 to connect I/O lcore 1 (socket 0) with worker lcore 2 ...
INIT: Creating ring to connect worker lcore 2 with TX port 0 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 1 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 2 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 3 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 4 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 5 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 6 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 7 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 8 (through I/O lcore 1) (socket 0) ...
INIT: Creating ring to connect worker lcore 2 with TX port 9 (through I/O lcore 1) (socket 0) ...
INIT: No. of Lpolicer Buckets : 1
INIT: Setting worker Lpolicer: 0 start-idx 0
HOSTIF: Creating ring to connect hostif lcore 0 with worker lcore 2 ...
HOSTIF: Creating ring with priority 0 to connect worker lcore 0 (socket 0) with hostif worker lcore 2 ...
HOSTIF: Creating ring with priority 1 to connect worker lcore 0 (socket 0) with hostif worker lcore 2 ...
CONFIG: Runtime option summary:
CONFIG: rx capture port mask : 0x0
CONFIG: rx capture frequency : 1
CONFIG: rx capture length : 128
EAL: 0000:00:03.0 not managed by UIO driver, skipping
EAL: 0000:00:04.0 not managed by UIO driver, skipping
INIT: Initializing NIC port 0 ...
INIT: Initializing NIC port 0 RX queue 0 ...
INIT: Initializing NIC port 0 TX queue 0 ...
INIT: Initializing NIC port 1 ...
INIT: Initializing NIC port 1 RX queue 0 ...
INIT: Initializing NIC port 1 TX queue 0 ...
INIT: Initializing NIC port 2 ...
INIT: Initializing NIC port 2 RX queue 0 ...
INIT: Initializing NIC port 2 TX queue 0 ...
INIT: Initializing NIC port 3 ...
INIT: Initializing NIC port 3 RX queue 0 ...
INIT: Initializing NIC port 3 TX queue 0 ...
INIT: Initializing NIC port 4 ...
INIT: Initializing NIC port 4 RX queue 0 ...
INIT: Initializing NIC port 4 TX queue 0 ...
INIT: Initializing NIC port 5 ...
INIT: Initializing NIC port 5 RX queue 0 ...
INIT: Initializing NIC port 5 TX queue 0 ...
INIT: Initializing NIC port 6 ...
INIT: Initializing NIC port 6 RX queue 0 ...
INIT: Initializing NIC port 6 TX queue 0 ...
INIT: Initializing NIC port 7 ...
INIT: Initializing NIC port 7 RX queue 0 ...
INIT: Initializing NIC port 7 TX queue 0 ...
INIT: Initializing NIC port 8 ...
INIT: Initializing NIC port 8 RX queue 0 ...
INIT: Initializing NIC port 8 TX queue 0 ...
INIT: Initializing NIC port 9 ...
INIT: Initializing NIC port 9 RX queue 0 ...
INIT: Initializing NIC port 9 TX queue 0 ...
RPIO: Command socket listening on: localhost:3000
RPIO: Event socket listening on: localhost:3001
LU: Initializing LU
INIT: Initialization completed.
CONFIG: NIC RX ports: CONFIG: 0 (CONFIG: 0 CONFIG: ) CONFIG: 1 (CONFIG: 0 CONFIG: ) CONFIG: 2 (CONFIG: 0 CONFIG: ) CONFIG: 3 (CONFIG: 0 CONFIG: ) CONFIG: 4 (CONFIG: 0 CONFIG: ) CONFIG: 5 (CONFIG: 0 CONFIG: ) CONFIG: 6 (CONFIG: 0 CONFIG: ) CONFIG: 7 (CONFIG: 0 CONFIG: ) CONFIG: 8 (CONFIG: 0 CONFIG: ) CONFIG: 9 (CONFIG: 0 CONFIG: ) CONFIG: ;
CONFIG: I/O lcore 1 (socket 0): CONFIG: RX ports CONFIG: (0, 0, 0) CONFIG: (1, 0, 1) CONFIG: (2, 0, 2) CONFIG: (3, 0, 3) CONFIG: (4, 0, 4) CONFIG: (5, 0, 5) CONFIG: (6, 0, 6) CONFIG: (7, 0, 7) CONFIG: (8, 0, 8) CONFIG: (9, 0, 9) CONFIG: ; CONFIG: Output rings CONFIG:
Priority : HiCONFIG: 0x7f40577ea000 CONFIG:
Priority : NorCONFIG: 0x7f40577ec080 CONFIG: ;
CONFIG: Worker lcore 2 (socket 0) ID 0: CONFIG: Input rings CONFIG:
Priority : HiCONFIG: 0x1d9a540 CONFIG: 0x1d9a608 CONFIG:
Priority : NorCONFIG: 0x1d9a540 CONFIG: ;
CONFIG:
CONFIG:
CONFIG: NIC TX ports: CONFIG: 0 CONFIG: 1 CONFIG: 2 CONFIG: 3 CONFIG: 4 CONFIG: 5 CONFIG: 6 CONFIG: 7 CONFIG: 8 CONFIG: 9 CONFIG: ;
CONFIG: I/O lcore 1 (socket 0): CONFIG: Input rings per TX port CONFIG: 0 (CONFIG: 0x7f40577ee100 CONFIG: ) CONFIG: 1 (CONFIG: 0x7f40577f0180 CONFIG: ) CONFIG: 2 (CONFIG: 0x7f40577f2200 CONFIG: ) CONFIG: 3 (CONFIG: 0x7f40577f4280 CONFIG: ) CONFIG: 4 (CONFIG: 0x7f40577f6300 CONFIG: ) CONFIG: 5 (CONFIG: 0x7f40577f8380 CONFIG: ) CONFIG: 6 (CONFIG: 0x7f40577fa400 CONFIG: ) CONFIG: 7 (CONFIG: 0x7f40577fc480 CONFIG: ) CONFIG: 8 (CONFIG: 0x7f3ff5b8c740 CONFIG: ) CONFIG: 9 (CONFIG: 0x7f3ff5b8e7c0 CONFIG: ) CONFIG: ;
CONFIG: Worker lcore 2 (socket 0) ID 0:
CONFIG: Output rings per TX port CONFIG: 0 (0x7f40577ee100) CONFIG: 1 (0x7f40577f0180) CONFIG: 2 (0x7f40577f2200) CONFIG: 3 (0x7f40577f4280) CONFIG: 4 (0x7f40577f6300) CONFIG: 5 (0x7f40577f8380) CONFIG: 6 (0x7f40577fa400) CONFIG: 7 (0x7f40577fc480) CONFIG: 8 (0x7f3ff5b8c740) CONFIG: 9 (0x7f3ff5b8e7c0) CONFIG: ;
CONFIG: Ring sizes: NIC RX = 1024; Worker in = 1024; Worker out = 1024; NIC TX = 1024;
CONFIG: Burst sizes: I/O RX (rd = 32, wr = 32); Worker (rd = 32, wr = 32); I/O TX (rd = 32, wr = 32)
RUNTIME: Logical core 1 (I/O) main loop.

RUNTIME: Logical core 2 (worker 0) main loop.

RPIO: Accepted connection from localhost <-> localhost:3000
RPIO: Accepted connection from localhost <-> localhost:3001
RIOT: Received bandwidth config: b/w : 6250000

RIOT: Initializing policer for bank 0, bucket : 0 rate: 6250000

METER: Low level srTCM config:
CIR period = 464, CIR bytes per period = 1
RIOT: New policer index: 0

HOSTIF: Accepted connection

RUNTIME: Detected port 0 status changed to UP

RUNTIME: Detected port 1 status changed to UP

RUNTIME: Detected port 2 status changed to UP

RUNTIME: Detected port 3 status changed to UP

RUNTIME: Detected port 4 status changed to UP

RUNTIME: Detected port 5 status changed to UP

RUNTIME: Detected port 6 status changed to UP

RUNTIME: Detected port 7 status changed to UP

RUNTIME: Detected port 8 status changed to UP

RUNTIME: Detected port 9 status changed to UP

8. Connect to VCP using serial console

The default configuration is user root with no password. I have already configured the vMX in my old laboratories.

silvia@vMX-ubuntu:~/vmx-15.1F4-3$ sudo ./vmx.sh --console vcp vmx1
[sudo] password for silvia:

vMX (ttyd0)

login: root
password: ********

--- JUNOS 15.1F4.15 built 2015-12-23 20:22:39 UTC

root@vMX% cli
root@vMX>

9. Configure SSH connectivity

I configure fxp0 interface with the OoB Management IP address:

[edit]
root@vMX# show interfaces fxp0 
unit 0 {
      family inet {
            address 192.168.83.11/24;
      }
}

[edit]
root@vMX# run show route

inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

192.168.83.0/24 *[Direct/0] 00:15:24
 > via fxp0.0
192.168.83.11/32 *[Local/0] 00:15:24
 Local via fxp0.0

Let’s test some ping:

[edit]
root@vMX# run ping 192.168.83.10  <<-- to Ubuntu Host
PING 192.168.83.10 (192.168.83.10): 56 data bytes
64 bytes from 192.168.83.10: icmp_seq=0 ttl=64 time=0.335 ms
^C
--- 192.168.83.10 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.270/0.352/0.430/0.058 ms

[edit]
root@vMX# run ping 192.168.83.1  <<-- to MacBook 
PING 192.168.83.1 (192.168.83.1): 56 data bytes
64 bytes from 192.168.83.1: icmp_seq=0 ttl=64 time=1.249 ms
^C
--- 192.168.83.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.591/0.920/1.249/0.329 ms

[edit]
root@vMX# run ping 192.168.83.12   <<-- to VFP
PING 192.168.83.12 (192.168.83.12): 56 data bytes
64 bytes from 192.168.83.12: icmp_seq=0 ttl=64 time=2.595 ms
^C
--- 192.168.83.12 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.613/1.604/2.595/0.991 ms

Let’s check if I can connect to vRE from Ubuntu Host:

silvia@vMX-ubuntu:~$ ssh root@192.168.83.11 
The authenticity of host '192.168.83.11 (192.168.83.11)' can't be established.
ECDSA key fingerprint is 34:0a:47:46:92:0f:f9:ba:8d:e3:99:9a:bd:3c:82:71.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.83.11' (ECDSA) to the list of known hosts.
Password:
Last login: Fri Nov 17 11:21:06 2017
--- JUNOS 15.1F4.15 built 2015-12-23 20:22:39 UTC
root@vMX% cli
root@vMX>

BINGO!! Now I can connect also from my MacBook using SecureCRT.

10. Create and save a vMX base configuration file vmx_base.conf

Next, I create and I save into my SkyLifter project folder a base configuration file using file path: SkyLifter/SkylifterSource/vmx_base.conf.

11. Comand Line Summary

cd vmx-15.1F4-3/

sudo ./vmx.sh -lv --install

brctl show

sudo ./vmx.sh --bind-check

sudo ./vmx.sh --bind-dev

sudo ./vmx.sh --bind-check

sudo ./vmx.sh --console vfp vmx1 (root, root)

sudo ./vmx.sh --console vcp vmx1 (root, SilviaMurgescu)

29 thoughts on “vMX Initial Configuration

  1. Avg computer tuneup is here now fully dealing with keys and split, so thanks for this, my computer is full secure anticipated to it. It really is an incredible tool to protect my laptop or computer data and record .thanks a lot

  2. Avg laptop or computer tuneup is here now fully dealing with keys and split, so thanks for this, my laptop or computer is full secure anticipated to it. It really is an incredible tool to protect my computer documents and record .thanks a lot

  3. Elite quality private proxies, Unrestricted bandwidth, 1000 mb/s superspeed, 99,9 uptime, Non consecutive IP’s, No utilization constraints, Numerous subnets, USA or Europe proxies – Buy Now – DreamProxies.com

  4. I simply wanted to compose a note to be able to express gratitude to you for those amazing recommendations you are sharing at this site. My time consuming internet lookup has finally been compensated with awesome facts and techniques to go over with my visitors. I ‘d point out that many of us readers actually are undoubtedly fortunate to dwell in a wonderful place with so many marvellous professionals with valuable methods. I feel extremely blessed to have seen your site and look forward to plenty of more enjoyable minutes reading here. Thanks a lot once again for a lot of things.

  5. Good Afternoon, I am a PR assistant at Peaches and Screams and I am reaching out to offer you to publish some of our product reviews and guides on your website. We are working hard to grow our brand so we thought that publishing articles on your website would help us to achieve exactly that whilst at the same time contributing unique and interesting content to your website. When I was reviewing your website, I thought that your visitors would enjoy reading articles on these subjects. In writing up our articles, we have chosen the top selling products from our store! All articles are 100 unique and have not been published elsewhere 🙂 I have formatted all the articles and have saved each one inside a Word document. I have also added a folder with our banners that you can use with the blog posts. I have included articles on 1) product reviews and 2) guides. You can find everything inside my Google drive: https://drive.google.com/drive/folders/1uqBagrItiLVhh5glpvqBuyOxcI4AJzCR?usp=sharing I would be most grateful if you could credit each article to April Lord from Peaches and Screams (https://peachesandscreams.co.uk) Likewise, if you have some interesting articles, do hit us up on our Facebook page (https://www.facebook.com/peachesandscreamsuk/) and we could publish those for you 🙂 Thanks for your time and have a fab day! Kind regards, April Lord

  6. Hi, I am the marketing admin at Peaches and Screams. We are currently having a go at to take advantage of the vape wholesale market. Does anyone here possess any practical experience with the vape market place or B2B list building? We are quite predisposed to acquire the Global Vape Shop Database, Vape Company E-Mail List and Yoggy’s Money Vault Search Engine Scraper so as to produce our very own B2B leads. Does anybody here have any kind of prior experience with any one of the above advertising and marketing resources? Would love to listen to your thoughts and testimonials before committing myself to the investment. Likewise, I would highly appreciate any recommendations for really helping us to grow our vape wholesale company. Cheers

  7. Hey! I am the procurement executive at https://clouder.co.uk online vape shop (https://clouder.co.uk). We are currently working on broadening our 10 ml nicotine (https://clouder.co.uk/vape/eliquids%5Deliquid) and shortfill e-liquid selection (https://clouder.co.uk/vape/short-fills) and would definitely be thankful if any vapers could possibly recommend a couple of good brands that are not absurdly popular. We are thinking of taking on all of these e-juice brand names: Boyz To The Yard E-Juiced, Five Pawns E-Liquid, Mountain Man E-Liquid Please respond to this particular thread or DM me:-RRB- Cheers

  8. super eleman online iş ve işçi bulma sistemi olarak binlerce iş ilanları yayınlanıyor. Sakarya’da en güncel iş ilanları ilçelere göre iş ilanı başvuruları ile daima aktif bir platformdur.

  9. Through friends street value viagra 100mg Going deeper, the Nvidia Shield sure has a sweet set of specs, including an Nvidia Tegra 4 quad-core processor, 2GB of RAM, a 5-inch display with 1280-by-720 resolution at 294 pixels-per-inch, 16GB of onboard memory, Wi-Fi, Bluetooth 3.0, pint-sized HDMI and USB 2.0 slots, and a 28.8 Wh battery. The device itself weighs in at 1.27 pounds and is priced at $300.

  10. Thanks for the guidelines you have discussed here. Something else I would like to convey is that laptop memory needs generally rise along with other advances in the technologies. For instance, as soon as new generations of processor chips are brought to the market, there is certainly usually a related increase in the type preferences of both the laptop or computer memory along with hard drive space. This is because the software operated by means of these cpus will inevitably boost in power to make use of the new technological know-how.

  11. I am not sure where you are getting your information, but great topic. I needs to spend some time learning much more or understanding more. Thanks for wonderful information I was looking for this information for my mission.

  12. Hi would you mind sharing which blog platform you’re using?
    I’m planning to start my own blog soon but I’m having a tough time selecting between BlogEngine/Wordpress/B2evolution and
    Drupal. The reason I askk is because your design and
    style seems different then most blogs and I’m looking for something completely unique.
    P.S Apologies for being off-topic but I had to ask!

  13. Appreciating the time and effort you pput into your site and in depth information you present.
    It’s nice to come across a blog every once in a while that isn’t
    the same out of date rehashed information. Wonderful read!
    I’ve bookmarked your site and I’m including your RSS feeds to my Google account.

Leave a Reply

Your email address will not be published. Required fields are marked *