Skip to content

ClickOS - no response after some time and hangs #40

@musigit

Description

@musigit

I am trying the simple ping response example with latest ClickOS from master. I have tried this on both Ubuntu 14.04 LTS Update 5 as well as Ubuntu 16.04 Update 3 LTS with stock Xen.

After initial success, the Click OS setup stops responding to ping request after some time. To rule out any issues with network setup, I have used both linux bridge as well as Open vSwitch .. both end up with similar issues. What could be the reason? Is there something I have missed out and what should I be looking at?

Please note that I have tried this on multiple Ubuntu + Xen systems. The clickos vm reponds to 'xl shutdown' ... so it doesn't seem to have crashed.

Minimal debug attempt - I recompiled minios with debug dprintk enabled and with that I don't see any "rx: --- " output in console once it hangs.

+++
/** commented out
#define dprintk(format, ...)	do {} while(0)
*/

#ifndef dprintk
#define dprintk(format, ...)	printk(format,##__VA_ARGS__)
#endif
+++

Last few lines of xl console output before hang - 

rx: ring: len 98
rx: --- 98 bytes
Ping Response:   98 | 00161715 5d190050 56b52ef4 08004500 00540c29 0000ff01
tx: raw 98
rx: ring: len 98
rx: --- 98 bytes
Ping Response:   98 | 00161715 5d190050 56b52ef4 08004500 00540cb5 0000ff01
tx: raw 98

Here is my simple test config -

// define the IP address of this network function.
// This IP must NOT be the same with your VM's IP.
define($IP 192.168.44.29);
// This MAC must be identical with the one you defined in config.xen
define($MAC 00:16:17:15:5d:19);

source :: FromDevice;
sink   :: ToDevice;
c :: Classifier(
    12/0806 20/0001,
    12/0806 20/0002,
    12/0800,
    -);

arpq :: ARPQuerier($IP, $MAC);
arpr :: ARPResponder($IP $MAC);  // No comma here.

source -> c;
c[0] -> ARPPrint -> arpr -> sink;
c[1] -> [1]arpq;
Idle -> [0]arpq;
arpq -> ARPPrint -> sink;
c[2] -> CheckIPHeader(14) -> ICMPPingResponder() -> Print('Ping Response') -> EtherMirror() -> sink;
c[3] -> Discard;

xen config

name   = 'firsttest'
kernel = '/home/tester/workspace/clickos/minios/build/clickos_x86_64'
vcpus  = '1'
# pinning your VCPU helps performance
cpus   = '3'
memory = '128'

# uncoment this line if you wish to use our backend
#vif    = ['bridge=vale0,script=vif-vale']
vif    = ['script=vif-openvswitch,mac=00:16:17:15:5d:19,bridge=ovsbr1,model=e1000']

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'preserve'
click       = 'mirror.click'

# uncomment this line to enable PVH mode for ClickOS
#pvh=1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions