Dear Yiannis,
I'm grad to get your reply. As you mention, the MAC learning function should be 
disabled. But the switch in tl-wr841 is not the same as tl-wr1043nd. When run 
the command "swconfig dev switch0 help", it goes as :


root@OpenWRT:~# swconfig dev switch0 help switch0: eth0(AR7240/AR9330 built-in 
switch), ports: 5 (cpu @ 0), vlans: 16 --switch Attribute 1 (int): enable_vlan 
(Enable VLAN mode) Attribute 2 (none): apply (Activate changes in the hardware) 
Attribute 3 (none): reset (Reset the switch) --vlan Attribute 1 (int): vid 
(VLAN ID) Attribute 2 (ports): ports (VLAN port mapping) --port Attribute 1 
(int): pvid (Primary VLAN ID) Attribute 2 (string): link (Get port link 
information)

There's no enable_learning attribute. And now,  I am trying to find the way to 
disable the learning function in the source code (ag71xx_ar7240.c). But I'm not 
sure if it will work.

Thanks,
Li.


At 2013-08-07 00:12:59,"Yiannis Yiakoumis" <yiann...@stanford.edu> wrote:

tl-1043nd had learning functionality on the wired ports, and I had to disable 
it for openflow to work (look at the network configuration file). Is there 
something similar on 841n? If so, disable it and try again.


Let us know how it goes..


Thanks,
Y.



On Mon, Aug 5, 2013 at 6:05 PM, lixu <xl...@126.com> wrote:

Hi, every one. I'm a newer on openflow and openwrt. I get many confusions about 
them. Any suggestion will be appreciated. 
Here is my experiment structure:

h1(00:16:76:d7:82:d9)++++++(port3)tl-wr841n(port1)++++++h2(10:1f:74:b4:8d:ce)
                                                                +
                                                                +
                                                                +
                                                         h3(controller: pox)

As shown in the structure, I try to use tl-wr841n to implement openflow in 
openwrt by following the instruction in 
http://www.openflow.org/wk/index.php/Pantou_:_OpenFlow_1.0_for_OpenWRT to built 
the needed image, the difference is that I  choose the openwrt attitude 
adjustment 12.09 version. Then I flash the image into wr841n and run the pox in 
the controller host, everything seems work fine, until I started to do some 
tests.
For the component forwarding.l2_learning, I run it as:
lsz@lsz-DELL:/ofd/pox/ext$ ../pox.py log.level --DEBUG  forwarding.l2_learning 
openflow.keepalive
POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.
DEBUG:core:POX 0.1.0 (betta) going up...
DEBUG:core:Running on CPython (2.7.3/Apr 10 2013 05:09:49)
DEBUG:core:Platform is Linux-3.5.0-36-generic-i686-with-Ubuntu-12.10-quantal
INFO:core:POX 0.1.0 (betta) is up.
DEBUG:openflow.of_01:Listening on 0.0.0.0:6633
INFO:openflow.of_01:[00-23-20-37-56-69 1] connected
DEBUG:forwarding.l2_learning:Connection [00-23-20-37-56-69 1]
DEBUG:forwarding.l2_learning:installing flow for 00:16:76:d7:82:d9.3 -> 
10:1f:74:b4:8d:ce.1
DEBUG:forwarding.l2_learning:Finish send the learning flow
DEBUG:forwarding.l2_learning:installing flow for 00:16:76:d7:82:d9.3 -> 
10:1f:74:b4:8d:ce.1
DEBUG:forwarding.l2_learning:Finish send the learning flow

Pox has send the learning packet to the wr841n, and I can see the flows in the 
router by dpctl:
root@OpenWrt:~# dpctl dump-flows tcp:127.0.0.1:6634
stats_reply (xid=0x33a969d1): flags=none type=1(flow)
  cookie=0, duration_sec=9s, duration_nsec=533000000s, table_id=0, 
priority=65535, n_packets=9, n_bytes=540, 
idle_timeout=10,hard_timeout=30,arp,in_port=3,dl_vlan=0xffff,dl_vlan_pcp=0x00,dl_src=00:16:76:d7:82:d9,dl_dst=10:1f:74:b4:8d:ce,nw_src=192.168.0.2,nw_dst=192.168.0.3,nw_tos=0x00,nw_proto=2,tp_src=0,tp_dst=0,actions=output:1
  cookie=0, duration_sec=4s, duration_nsec=511000000s, table_id=0, 
priority=65535, n_packets=1, n_bytes=98, 
idle_timeout=10,hard_timeout=30,icmp,in_port=3,dl_vlan=0xffff,dl_vlan_pcp=0x00,dl_src=00:16:76:d7:82:d9,dl_dst=10:1f:74:b4:8d:ce,nw_src=192.168.0.2,nw_dst=192.168.0.3,nw_tos=0x00,icmp_type=8,icmp_code=0,actions=output:1

That means the wr841n has received and added the flows sent by the controller. 
But the host1 and host2 still cannot ping each other successfully and shown 
"Destination Host Unreachable". I also try to add the flows through dptcl as 
below, but the same result when ping
root@OpenWrt:~# dpctl dump-flows tcp:127.0.0.1:6634
stats_reply (xid=0xdbf01cfe): flags=none type=1(flow)
root@OpenWrt:~# dpctl add-flow tcp:127.0.0.1:6634 hard_timeout=30,
dl_src=10:1f:74:b4:8d:ce,actions=output:3
root@OpenWrt:~# dpctl add-flow tcp:127.0.0.1:6634 dl_src=00:16:76:
d7:82:d9,hard_timeout=30,actions=output:1
root@OpenWrt:~# dpctl dump-flows tcp:127.0.0.1:6634
stats_reply (xid=0x3b6eecbb): flags=none type=1(flow)
  cookie=0, duration_sec=2s, duration_nsec=271000000s, table_id=1, 
priority=32768, n_packets=0, n_bytes=0, 
idle_timeout=60,hard_timeout=30,dl_src=00:16:76:d7:82:d9,actions=output:1
  cookie=0, duration_sec=8s, duration_nsec=718000000s, table_id=1, 
priority=32768, n_packets=0, n_bytes=0, 
idle_timeout=60,hard_timeout=30,dl_src=10:1f:74:b4:8d:ce,actions=output:3

The configurations of tl-wr841n are as follow:
/***network configuration***/
root@OpenWrt:~# cat /etc/config/network 
config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config interface 'lan'
    option ifname 'eth0.1'
    option type 'bridge'
    option proto 'static'
    option ipaddr '192.168.1.1'
    option netmask '255.255.255.0'
    
config interface 'lan2'
    option ifname 'eth0.2'
    option proto 'static'

config interface 'lan3'
    option ifname 'eth0.3'
    option proto 'static'
    
config interface 'lan4'
    option ifname 'eth0.4'
    option proto 'static'

config interface 'wan'
    option ifname 'eth1'
    option proto 'dhcp'

config switch
    option name 'eth0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'eth0'
    option vlan '1'
    option ports '0t 4'

config switch_vlan
    option device 'eth0'
    option vlan '2'
    option ports '0t 1'

config switch_vlan
    option device 'eth0'
    option vlan '3'
    option ports '0t 2'
    
config switch_vlan
    option device 'eth0'
    option vlan '4'
    option ports '0t 3'

/***openflow switch configuration***/
root@OpenWrt:~# cat /etc/config/openflow 
config 'ofswitch'
    option 'dp' 'dp0'
#    option 'dpid' '000000000001'
    option 'ofports' 'eth0.2 eth0.3 eth0.4'
    option 'ofctl' 'tcp:192.168.1.185:6633'
    option 'mode'  'outofband'


Lixu



_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss



_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to