In order to use the Ethernet bridging functionality, you'll need the
userspace tools.

Documentation for Linux bridging is on:
   http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge

The bridge-utilities are maintained at:
   git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git

Additionally, the iproute2 utilities can be used to configure
bridge devices.

If you still have questions, don't hesitate to post to the mailing list 
(more info https://lists.linux-foundation.org/mailman/listinfo/bridge).

