bgp: fix bug of Path(Origin) formatting for show VPNv4 prefix information

The field of 'Path(Origin)' has not displayed in properly ,because Origin codes '2 (incomplete)' is not defined in the latest code .
Therfore, I've patched the codes for formatting as follows .

INFO:bgpspeaker.api.base:API method operator.show called with args: {'params': ['rib', 'all'], 'format': 'cli'}
Status codes: * valid, > best
Origin codes: i - IGP, e - EGP, ? - incomplete
     Network                          Labels   Next Hop             Reason          Metric LocPrf Path
Family: rtfilter
 *>  64512:64511:101                  None     0.0.0.0              Only Path                     ?
Family: vpnv6
Family: vpnv4
 *>  64511:101:10.10.0.1/32           [17]     192.168.100.100      Only Path       0             64511 ?
 *>  64511:101:10.20.2.0/24           [100]    0.0.0.0              Only Path                     ?
 *>  64511:101:10.20.1.0/24           [100]    0.0.0.0              Only Path                     ?
 *>  64511:101:10.20.3.0/24           [100]    0.0.0.0              Only Path                     ?
Family: ipv4
Family: ipv6

Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: fix bug of labels formatting for show VPNv4 prefix information

The field of 'Labels' has not displayed in properly because of extracting 'label_list' in python slicing tuples.

INFO:bgpspeaker.api.base:API method operator.show called with args: {'params': ['rib', 'all'], 'format': 'cli'}
Status codes: * valid, > best
    Network                          Labels   Next Hop             Reason          Metric LocPrf Path/Origin
Family: rtfilter
*>  64512:64511:101                  None     0.0.0.0              Only Path                     2
Family: vpnv6
Family: vpnv4
*>  64511:101:10.10.0.1/32           ([17],)  192.168.100.100      Only Path       0             64511 2
*>  64511:101:10.20.2.0/24           ([100],) 0.0.0.0              Only Path                     2
*>  64511:101:10.20.1.0/24           ([100],) 0.0.0.0              Only Path                     2
*>  64511:101:10.20.3.0/24           ([100],) 0.0.0.0              Only Path                     2
Family: ipv4
Family: ipv6

Reported-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: add route server function to bgpspeaker

implemented draft-ietf-idr-ix-bgp-route-server-05 partially.

you can enable this function like below

>    speaker = BGPSpeaker(as_number=64512, router_id='10.10.0.1')
>    speaker.neighbor_add('10.0.0.1', 64514, is_route_server_client=True)
>    speaker.neighbor_add('10.10.0.2', 64513, is_route_server_client=True)

add multiple rib function is a future work

Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: move ssh configuration to bgp config file

You can't pass ssh.py to run command any more. If you need ssh CLI,
update the bgp config file and then:

ryu run —-config-file /path/to/ryu.conf /path/to/ryu/ryu/services/protocols/application.py

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: add attribute ORIGINATOR_ID and CLUSTER_LIST

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: add BGP capability code 64 (graceful restart)

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: refine the API for connecting to bmp server

We might want a bgp speaker to talk with multiple bmp servers in the
future so I renamed these functions. Note that currently a speaker can
connect to only one bmp server.

I also update the example code on how to make the speaker to connect
to a bmp server.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: fix bug of receiving 'RouteRefresh' Message

When Ryu BGP received 'RouteRefresh' Message from the peering router, BGP session has closed as follows .

DEBUG 2014-08-15 02:20:08,718 speaker 447 Received msg from ('192.168.100.100', '34939') << BGPRouteRefresh(afi=1,demarcation=1,len=23,safi=128,type=5)
DEBUG 2014-08-15 02:20:08,719 speaker 566 Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 560, in _recv_loop
    self.data_received(next_bytes)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 275, in data_received
    self._data_received(next_bytes)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 355, in _data_received
    self._handle_msg(msg)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 508, in _handle_msg
    self._peer.handle_msg(msg)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 1585, in handle_msg
    self._handle_route_refresh_msg(msg)
  File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 1619, in _handle_route_refresh_msg
    afi = msg.route_family.afi
AttributeError: 'BGPRouteRefresh' object has no attribute 'route_family'

INFO 2014-08-15 02:20:08,722 peer 1901 Connection to peer 192.168.100.100 lost, reason: 'BGPRouteRefresh' object has no attribute 'route_family' Resetting retry connect loop: False

Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
bgp: simplify CLUSTER_LIST attribute parser

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
fix setup.cfg entry

SubmittingPatches.rst was renamed to CONTRIBUTING.rst.
setup.py sdist will check this dependency.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>