Running  OpenFlow  on  OpenWrt  is  a  well  known  use-case. Of‐
softswitch is a user space implementation of OF software  switch.
If  you want to use fast failover mechanisms with it, you have to
provide port  status  information  to  ofsoftwitch.  Polling  via
swconfig   and  swconfig   API   could  be used in this case, but
they are bloated, because they use context switch for  each  port
status  request.  Lowering  this  overhead  is important, because
ofsoftswitch utilizes the whole CPU.

To minimize the context switches I implemented  the  port  status
polling  in kernel mode using the swconfig kernel module. With my
patch the swconfig kernel module is able to  modify  the  carrier
state on predefined interfaces from &init_net according to a port
status change in the switch.

As a consequence,  netlink  messages  notify user space  programs
about  status  changes of ports / interfaces. This was useful for
us to test fast failover mechanisms of an  OpenFlow  switch.   We
believe  this  patch is generally useful beyond our routing soft‐
ware use‐case.

More information can be found on this web page:
http://centaur.sch.bme.hu/~leait/projects/openwrt/

If you are looking only for the patch:
http://centaur.sch.bme.hu/~leait/projects/openwrt/patches/swconfig_poll.patch

Tamas Levai

Tested by:
 * Tamas  Levai <[email protected]>
 * Felician Nemeth <[email protected]>
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to