Release notes: BGP user guide 14/7814/2
authorMarek Gradzki <[email protected]>
Thu, 27 Jul 2017 10:03:03 +0000 (12:03 +0200)
committerMarek Gradzki <[email protected]>
Thu, 27 Jul 2017 12:06:39 +0000 (12:06 +0000)
Also adds postman collection with BGP examples
(previously stored in honeycomb project).

Change-Id: I83fece59abfea9c528b19d084be48515eff4ce99
Signed-off-by: Marek Gradzki <[email protected]>
bgp/bgp_postman_collection.json [new file with mode: 0644]
release-notes/src/main/asciidoc/user_guide/bgp_in_honeycomb_user_guide.adoc [new file with mode: 0644]
release-notes/src/main/asciidoc/user_guide/user_guide.adoc
release-notes/src/main/asciidoc/user_guide/user_running_honeycomb.adoc

diff --git a/bgp/bgp_postman_collection.json b/bgp/bgp_postman_collection.json
new file mode 100644 (file)
index 0000000..fe42432
--- /dev/null
@@ -0,0 +1,537 @@
+{
+       "id": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+       "name": "Hc2vpp BGP RESTCONF calls",
+       "description": "Examples of BGP configration based on \nhttp://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html",
+       "order": [
+               "0779736c-2276-3275-b5c1-eccf8cf2fd22",
+               "0aae4294-1688-f0c1-3f20-21fc93a6dead",
+               "7097be0f-e36b-2e43-715b-a3d47c47fd94",
+               "3762ddc0-d7bc-57c9-e9b8-d536a1809fa8",
+               "5f1886a1-f957-126b-7093-963bce523c90",
+               "554e0087-3b7a-ea91-80aa-059400fee2ad",
+               "d13aea58-fb5f-3d4a-d6f4-25b4a67b3539",
+               "a62df5d6-53ab-f91c-c90c-efb054ef1aa3",
+               "02a81cd8-758b-8ba9-58f4-1744afb1ea74",
+               "b69ed7d0-cd9d-82d5-ae17-3be02a254a5f",
+               "3c3abdc7-0613-0260-46ec-020f0ff5d9d7",
+               "b49b3af6-cb64-cd30-8294-cc0bd2a61f76",
+               "1b683e04-c542-df6b-783e-dc1b16ae8f52",
+               "a24b4cde-e80a-8571-7c64-efaeb2fc1238",
+               "0b0f2068-5fbb-4d44-e58e-8c4562cda8ad",
+               "c30eb27b-8883-ab64-2286-a8bbabd95ba9"
+       ],
+       "folders": [],
+       "timestamp": 1494477000331,
+       "owner": "567303",
+       "public": false,
+       "requests": [
+               {
+                       "folder": null,
+                       "id": "02a81cd8-758b-8ba9-58f4-1744afb1ea74",
+                       "name": "show speeker's Loc-RIB",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "GET",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/loc-rib",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": null,
+                       "headerData": null,
+                       "pathVariableData": null,
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>10.25.1.9</neighbor-address>\n    <config>\n        <peer-group>application-peers</peer-group>\n    </config>\n</neighbor>"
+               },
+               {
+                       "folder": null,
+                       "id": "0779736c-2276-3275-b5c1-eccf8cf2fd22",
+                       "name": "show hc-bgp-instance",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "GET",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": null,
+                       "headerData": null,
+                       "pathVariableData": null,
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>192.0.2.1</neighbor-address>\n    <timers>\n        <config>\n            <hold-time>90</hold-time>\n            <connect-retry>10</connect-retry>\n        </config>\n    </timers>\n    <transport>\n        <config>\n            <remote-port>179</remote-port>\n            <passive-mode>false</passive-mode>\n        </config>\n    </transport>\n    <config>\n        <peer-type>INTERNAL</peer-type>\n    </config>\n</neighbor>"
+               },
+               {
+                       "id": "0aae4294-1688-f0c1-3f20-21fc93a6dead",
+                       "headers": "Content-Type: application/json\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/json",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/127.0.0.2",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1500013934256,
+                       "name": "add bgp peer",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "responses": [],
+                       "rawModeData": "{\n\t\"neighbor\": {\n  \"neighbor-address\": \"127.0.0.2\",\n  \"config\": {\n    \"peer-type\": \"INTERNAL\"\n  },\n  \"timers\": {\n    \"config\": {\n      \"connect-retry\": 10,\n      \"hold-time\": 90\n    }\n  },\n  \"transport\": {\n    \"config\": {\n      \"remote-port\": 17900,\n      \"passive-mode\": false\n    }\n  },\n  \"afi-safis\": {\n    \"afi-safi\": [\n      {\n        \"afi-safi-name\": \"openconfig-bgp-types:IPV4-UNICAST\",\n        \"receive\": true,\n        \"send-max\": 0\n      }\n    ]\n  }\n}\n}"
+               },
+               {
+                       "id": "0b0f2068-5fbb-4d44-e58e-8c4562cda8ad",
+                       "headers": "Content-Type: application/json\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/json",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/127.0.0.2",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1500014475038,
+                       "name": "update bgp peer",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "responses": [],
+                       "rawModeData": "{\n\t\"neighbor\": {\n  \"neighbor-address\": \"127.0.0.2\",\n  \"config\": {\n    \"peer-type\": \"INTERNAL\"\n  },\n  \"timers\": {\n    \"config\": {\n      \"connect-retry\": 10,\n      \"hold-time\": 91\n    }\n  },\n  \"transport\": {\n    \"config\": {\n      \"remote-port\": 17900,\n      \"passive-mode\": false\n    }\n  },\n  \"afi-safis\": {\n    \"afi-safi\": [\n      {\n        \"afi-safi-name\": \"openconfig-bgp-types:IPV4-UNICAST\",\n        \"receive\": true,\n        \"send-max\": 0\n      }\n    ]\n  }\n}\n}"
+               },
+               {
+                       "folder": null,
+                       "id": "1b683e04-c542-df6b-783e-dc1b16ae8f52",
+                       "name": "remove second ipv4unicast route",
+                       "dataMode": "raw",
+                       "data": [],
+                       "rawModeData": "",
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "DELETE",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.12%2F32/0",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": [],
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "pathVariableData": [],
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d"
+               },
+               {
+                       "folder": null,
+                       "id": "3762ddc0-d7bc-57c9-e9b8-d536a1809fa8",
+                       "name": "show 127.0.0.2 peer state",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "GET",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F127.0.0.2",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": null,
+                       "headerData": null,
+                       "pathVariableData": null,
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>192.0.2.1</neighbor-address>\n    <timers>\n        <config>\n            <hold-time>90</hold-time>\n            <connect-retry>10</connect-retry>\n        </config>\n    </timers>\n    <transport>\n        <config>\n            <remote-port>179</remote-port>\n            <passive-mode>false</passive-mode>\n        </config>\n    </transport>\n    <config>\n        <peer-type>INTERNAL</peer-type>\n    </config>\n</neighbor>"
+               },
+               {
+                       "id": "3c3abdc7-0613-0260-46ec-020f0ff5d9d7",
+                       "headers": "Authorization: Basic YWRtaW46YWRtaW4=\nContent-Type: application/json\n",
+                       "headerData": [
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/json",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/operational/hc2vpp-ietf-routing:routing-state/routing-instance/vpp-routing-instance/routing-protocols/routing-protocol/learned-protocol-0/static-routes/hc2vpp-ietf-ipv4-unicast-routing:ipv4",
+                       "queryParams": [],
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "preRequestScript": null,
+                       "method": "GET",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "data": [],
+                       "dataMode": "raw",
+                       "name": "get VPP IPv4 routes",
+                       "description": "",
+                       "descriptionFormat": "html",
+                       "time": 1501156310525,
+                       "version": 2,
+                       "responses": [],
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "rawModeData": "{\n  \"routing-instance\":\n  {\n    \"name\":\"routing-1\",\n    \"enabled\":\"true\",\n    \"router-id\":\"192.168.2.1\",\n    \"description\":\"Test routing instance\",\n    \"routing-protocols\":{\n      \"routing-protocol\":[\n        {\n          \"name\":\"test-routing-protocol\",\n          \"description\":\"Test routing protocol\",\n          \"enabled\":\"true\",\n          \"type\":\"static\",\n          \"static-routes\":{\n            \"ipv4\":{\n              \"route\":[\n                {\n                  \"id\":1,\n                  \"description\":\"Test static route\",\n                  \"destination-prefix\":\"192.168.2.3/32\",\n                  \"next-hop\":\"192.168.2.8\"\n                }\n              ]\n            }\n          }\n        }  \n      ]\n    }\n  }  \n}"
+               },
+               {
+                       "id": "554e0087-3b7a-ea91-80aa-059400fee2ad",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F10.25.1.9",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1500015544451,
+                       "name": "show 10.25.1.9 app peer state",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>192.0.2.1</neighbor-address>\n    <timers>\n        <config>\n            <hold-time>90</hold-time>\n            <connect-retry>10</connect-retry>\n        </config>\n    </timers>\n    <transport>\n        <config>\n            <remote-port>179</remote-port>\n            <passive-mode>false</passive-mode>\n        </config>\n    </transport>\n    <config>\n        <peer-type>INTERNAL</peer-type>\n    </config>\n</neighbor>"
+               },
+               {
+                       "id": "5f1886a1-f957-126b-7093-963bce523c90",
+                       "headers": "Content-Type: application/json\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/json",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/10.25.1.9",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1500014801163,
+                       "name": "add application peer",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "responses": [],
+                       "rawModeData": "{\n  \"neighbor\": {\n    \"neighbor-address\": \"10.25.1.9\",\n    \"config\": {\n      \"peer-group\": \"application-peers\"\n    },\n    \"afi-safis\": {\n      \"afi-safi\": [\n        {\n          \"afi-safi-name\": \"openconfig-bgp-types:IPV4-UNICAST\",\n          \"receive\": true,\n          \"send-max\": 0\n        },\n        {\n          \"afi-safi-name\": \"openconfig-bgp-types:IPV4-LABELLED-UNICAST\",\n          \"receive\": true,\n          \"send-max\": 0\n        }\n      ]\n    }\n  }\n}"
+               },
+               {
+                       "id": "7097be0f-e36b-2e43-715b-a3d47c47fd94",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "GET",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1499946714543,
+                       "name": "read network instance (config)",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "responses": [],
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>192.0.2.1</neighbor-address>\n    <timers>\n        <config>\n            <hold-time>90</hold-time>\n            <connect-retry>10</connect-retry>\n        </config>\n    </timers>\n    <transport>\n        <config>\n            <remote-port>179</remote-port>\n            <passive-mode>false</passive-mode>\n        </config>\n    </transport>\n    <config>\n        <peer-type>INTERNAL</peer-type>\n    </config>\n</neighbor>"
+               },
+               {
+                       "folder": null,
+                       "id": "a24b4cde-e80a-8571-7c64-efaeb2fc1238",
+                       "name": "add IPv4 labeled unicast route",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "POST",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-labeled-unicast:labeled-unicast-subsequent-address-family/bgp-labeled-unicast:labeled-unicast-routes",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": [],
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "pathVariableData": [],
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<labeled-unicast-route xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp-labeled-unicast\">\n    <route-key>label1</route-key>\n    <prefix>1.1.1.1/32</prefix>\n    <path-id>1</path-id>\n    <label-stack>\n        <label-value>800322</label-value>\n    </label-stack>\n    <attributes>\n        <ipv4-next-hop>\n            <global>199.20.160.41</global>\n        </ipv4-next-hop>\n        <origin>\n            <value>igp</value>\n        </origin>\n        <as-path/>\n        <local-pref>\n            <pref>100</pref>\n        </local-pref>\n    </attributes>\n</labeled-unicast-route>"
+               },
+               {
+                       "folder": null,
+                       "id": "a62df5d6-53ab-f91c-c90c-efb054ef1aa3",
+                       "name": "show 127.0.0.2 peer's adj-rib-out",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "GET",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F127.0.0.2/adj-rib-out/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": null,
+                       "headerData": null,
+                       "pathVariableData": null,
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<neighbor xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions\">\n    <neighbor-address>192.0.2.1</neighbor-address>\n    <timers>\n        <config>\n            <hold-time>90</hold-time>\n            <connect-retry>10</connect-retry>\n        </config>\n    </timers>\n    <transport>\n        <config>\n            <remote-port>179</remote-port>\n            <passive-mode>false</passive-mode>\n        </config>\n    </transport>\n    <config>\n        <peer-type>INTERNAL</peer-type>\n    </config>\n</neighbor>"
+               },
+               {
+                       "folder": null,
+                       "id": "b49b3af6-cb64-cd30-8294-cc0bd2a61f76",
+                       "name": "update second ipv4unicast route",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "PUT",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.12%2F32/0",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": [],
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "pathVariableData": [],
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<ipv4-route xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp-inet\">\n    <path-id>0</path-id>\n    <prefix>10.0.0.12/32</prefix>\n    <attributes>\n        <as-path></as-path>\n        <origin>\n            <value>igp</value>\n        </origin>\n        <local-pref>\n            <pref>102</pref>\n        </local-pref>\n        <ipv4-next-hop>\n            <global>10.11.1.1</global>\n        </ipv4-next-hop>\n    </attributes>\n</ipv4-route>"
+               },
+               {
+                       "folder": null,
+                       "id": "b69ed7d0-cd9d-82d5-ae17-3be02a254a5f",
+                       "name": "add another ipv4unicast route",
+                       "dataMode": "raw",
+                       "data": [],
+                       "descriptionFormat": null,
+                       "description": "",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "method": "PUT",
+                       "pathVariables": {},
+                       "url": "http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.12%2F32/0",
+                       "preRequestScript": null,
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "queryParams": [],
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "pathVariableData": [],
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<ipv4-route xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp-inet\">\n    <path-id>0</path-id>\n    <prefix>10.0.0.12/32</prefix>\n    <attributes>\n        <as-path></as-path>\n        <origin>\n            <value>igp</value>\n        </origin>\n        <local-pref>\n            <pref>100</pref>\n        </local-pref>\n        <ipv4-next-hop>\n            <global>10.11.1.1</global>\n        </ipv4-next-hop>\n    </attributes>\n</ipv4-route>"
+               },
+               {
+                       "id": "c30eb27b-8883-ab64-2286-a8bbabd95ba9",
+                       "headers": "Content-Type: application/json\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/json",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/127.0.0.2",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "DELETE",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1500014574942,
+                       "name": "delete bgp peer",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "responses": [],
+                       "rawModeData": ""
+               },
+               {
+                       "id": "d13aea58-fb5f-3d4a-d6f4-25b4a67b3539",
+                       "headers": "Content-Type: application/xml\nAuthorization: Basic YWRtaW46YWRtaW4=\n",
+                       "headerData": [
+                               {
+                                       "key": "Content-Type",
+                                       "value": "application/xml",
+                                       "description": "",
+                                       "enabled": true
+                               },
+                               {
+                                       "key": "Authorization",
+                                       "value": "Basic YWRtaW46YWRtaW4=",
+                                       "description": "",
+                                       "enabled": true
+                               }
+                       ],
+                       "url": "http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.11%2F32/0",
+                       "queryParams": [],
+                       "preRequestScript": null,
+                       "pathVariables": {},
+                       "pathVariableData": [],
+                       "method": "PUT",
+                       "data": [],
+                       "dataMode": "raw",
+                       "tests": null,
+                       "currentHelper": "normal",
+                       "helperAttributes": {},
+                       "time": 1501153693347,
+                       "name": "add ipv4unicast route",
+                       "description": "",
+                       "collectionId": "93836ad6-9489-6642-2539-b0a0aefd8f4d",
+                       "rawModeData": "<ipv4-route xmlns=\"urn:opendaylight:params:xml:ns:yang:bgp-inet\">\n    <path-id>0</path-id>\n    <prefix>10.0.0.11/32</prefix>\n    <attributes>\n        <as-path></as-path>\n        <origin>\n            <value>igp</value>\n        </origin>\n        <local-pref>\n            <pref>100</pref>\n        </local-pref>\n        <ipv4-next-hop>\n            <global>10.11.1.1</global>\n        </ipv4-next-hop>\n    </attributes>\n</ipv4-route>"
+               }
+       ]
+}
\ No newline at end of file
diff --git a/release-notes/src/main/asciidoc/user_guide/bgp_in_honeycomb_user_guide.adoc b/release-notes/src/main/asciidoc/user_guide/bgp_in_honeycomb_user_guide.adoc
new file mode 100644 (file)
index 0000000..71285db
--- /dev/null
@@ -0,0 +1,833 @@
+= Overview
+
+link:release_notes.html[< Home]
+
+Honeycomb uses link:https://wiki.opendaylight.org/view/BGP_LS_PCEP:BGP_Use_Cases[Opendaylight's BGP]
+as a part of default distribution.
+
+Following guide is based on ODL's link:http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#overview[BGP User Guide].
+
+== Basic configuration
+
+BGP HC modules are disabled by default. To enable it, edit
+
+  modules/io-fd-honeycomb_minimal-distribution_1-17-07-module-config
+
+in distribution dir (/opt/honeycomb in case honeycomb was installed from package):
+
+[source]
+----
+[...]
+io.fd.honeycomb.infra.bgp.BgpModule
+io.fd.honeycomb.infra.bgp.BgpReadersModule
+io.fd.honeycomb.infra.bgp.BgpWritersModule
+----
+
+=== BGP server configuration
+
+Use config/bgp.json to configure BGP server:
+
+[source,json]
+----
+{
+  "bgp-binding-address": "127.0.0.1",
+  "bgp-port": 1790,
+  "bgp-as-number": 65000,
+  "bgp-receive-multiple-paths": "true",
+  "bgp-send-max-paths": 0,
+  "bgp-network-instance-name": "global-bgp",
+  "bgp-protocol-instance-name": "hc-bgp-instance",
+  "bgp-netty-threads": 2
+}
+----
+
+NOTE: bgp-binding-address is also used as identifier of BGP speaker.
+
+=== Running BGP
+
+After enabling BGP modules and configuring BGP server,
+link:user_running_honeycomb.html#_starting_honeycomb_agent[start honeycomb].
+
+BGP server configuration can be verified using RESTCONF/NETCONF. We
+
+  curl -u admin:admin http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance
+
+[source,json]
+----
+{
+    "rib": [
+        {
+            "id": "hc-bgp-instance",
+            "loc-rib": {
+                "tables": [
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-labeled-unicast:labeled-unicast-subsequent-address-family",
+                        "bgp-labeled-unicast:labeled-unicast-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    }
+                ]
+            }
+        }
+    ]
+}
+----
+
+== BGP peer configuration
+
+Here is a sample basic neighbor configuration:
+
+*URL:* http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/127.0.0.2
+
+*Method:* PUT
+
+*Request body:*
+
+[source,json]
+----
+{
+       "neighbor": {
+  "neighbor-address": "127.0.0.2",
+  "config": {
+    "peer-type": "INTERNAL"
+  },
+  "timers": {
+    "config": {
+      "connect-retry": 10,
+      "hold-time": 90
+    }
+  },
+  "transport": {
+    "config": {
+      "remote-port": 17900,
+      "passive-mode": false
+    }
+  },
+  "afi-safis": {
+    "afi-safi": [
+      {
+        "afi-safi-name": "openconfig-bgp-types:IPV4-UNICAST",
+        "receive": true,
+        "send-max": 0
+      }
+    ]
+  }
+}
+}
+----
+
+We can use link:http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-test-tool[BGP's testtool]
+to simulate remote BGP peer:
+
+  java -jar ./target/bgp-testtool-0.6.3-Boron-SR3-executable.jar -ra 127.0.0.1:1790 -la 127.0.0.2:17900 -pr 2 -ll DEBUG --active true -as 65000 -mp true
+
+After connection is established, testtol will display following message in the log:
+
+  [...]
+  12:13:52.744 [epollEventLoopGroup-5-1] DEBUG o.o.p.b.r.i.p.BGPProtocolSessionPromise - Promise BGPProtocolSessionPromise@750e2b97(incomplete) completed
+  12:13:52.745 [epollEventLoopGroup-5-1] INFO  o.o.p.b.r.i.AbstractBGPSessionNegotiator - BGP Session with peer [id: 0xcab58201, L:/127.0.0.2:17900 - R:127.0.0.1/127.0.0.1:1790] established successfully.
+  12:14:22.716 [epollEventLoopGroup-5-1] DEBUG o.o.p.b.r.i.BGPSessionImpl - Message was received: Keepalive [augmentation=[]]
+  12:14:22.746 [epollEventLoopGroup-5-1] DEBUG o.o.p.b.r.i.BGPMessageToByteEncoder - Message sent to output: Keepalive [augmentation=[]]
+
+
+Once the remote peer is connected and it advertised routes to local BGP system, routes are stored in peer’s RIBs.
+The RIBs can be checked via REST:
+
+*URL:*: http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F127.0.0.2
+
+*Method:* GET
+
+*Response Body:*
+
+[source,json]
+----
+{
+    "peer": [
+        {
+            "peer-id": "bgp://127.0.0.2",
+            "supported-tables": [
+                {
+                    "afi": "bgp-types:ipv4-address-family",
+                    "safi": "bgp-types:unicast-subsequent-address-family",
+                    "send-receive": "both"
+                },
+                {
+                    "afi": "bgp-linkstate:linkstate-address-family",
+                    "safi": "bgp-linkstate:linkstate-subsequent-address-family"
+                }
+            ],
+            "effective-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {
+                            "ipv4-route": [
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.1/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                },
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.2/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                }
+                            ]
+                        },
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    }
+                ]
+            },
+            "adj-rib-out": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    }
+                ]
+            },
+            "peer-role": "ibgp",
+            "adj-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {
+                            "ipv4-route": [
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.1/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                },
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.2/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                }
+                            ]
+                        },
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    }
+                ]
+            }
+        }
+    ]
+}
+----
+
+== RIB programming
+
+The OpenDaylight BGP implementation also supports routes injection via Application Peer.
+Such peer has its own programmable RIB, which can be modified by user.
+This concept allows user to originate new routes and advertise them to all connected peers.
+
+Following configuration sample show a way to configure the Application Peer:
+
+*URL:* http://localhost:8183/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/hc-bgp-instance/bgp/bgp-openconfig-extensions:neighbors/neighbor/10.25.1.9
+
+*Method:* PUT
+
+*Request body:*
+
+[source,json]
+----
+{
+  "neighbor": {
+    "neighbor-address": "10.25.1.9",
+    "config": {
+      "peer-group": "application-peers"
+    },
+    "afi-safis": {
+      "afi-safi": [
+        {
+          "afi-safi-name": "openconfig-bgp-types:IPV4-UNICAST",
+          "receive": true,
+          "send-max": 0
+        },
+        {
+          "afi-safi-name": "openconfig-bgp-types:IPV4-LABELLED-UNICAST",
+          "receive": true,
+          "send-max": 0
+        }
+      ]
+    }
+  }
+}
+----
+
+The Application Peer presence can be verified via REST:
+
+*URL:* http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F10.25.1.9
+
+*Method:* GET
+
+*Response body:*
+
+[source,json]
+----
+{
+    "peer": [
+        {
+            "peer-id": "bgp://10.25.1.9",
+            "effective-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-labeled-unicast:labeled-unicast-subsequent-address-family",
+                        "bgp-labeled-unicast:labeled-unicast-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    }
+                ]
+            },
+            "peer-role": "internal",
+            "adj-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-labeled-unicast:labeled-unicast-subsequent-address-family",
+                        "bgp-labeled-unicast:labeled-unicast-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    }
+                ]
+            }
+        }
+    ]
+}
+----
+
+=== Programmable RIB
+
+Next example shows how to inject a route into the programmable RIB.
+
+*URL:* http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.11%2F32/0
+
+*Method:* PUT
+
+*Request body:*
+
+[source,xml]
+----
+<ipv4-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp-inet">
+    <path-id>0</path-id>
+    <prefix>10.0.0.11/32</prefix>
+    <attributes>
+        <as-path></as-path>
+        <origin>
+            <value>igp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <ipv4-next-hop>
+            <global>10.11.1.1</global>
+        </ipv4-next-hop>
+    </attributes>
+</ipv4-route>
+----
+
+Once the remote peer is connected (we used testtool to simulate it)
+and it advertised routes to local BGP system, routes are stored in peer’s RIBs. The RIBs can be checked via REST:
+
+
+*URL:* http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/peer/bgp:%2F%2F127.0.0.2
+
+*Method:* GET
+
+*Response body:*
+
+[source,json]
+----
+{
+    "peer": [
+        {
+            "peer-id": "bgp://127.0.0.2",
+            "supported-tables": [
+                {
+                    "afi": "bgp-types:ipv4-address-family",
+                    "safi": "bgp-types:unicast-subsequent-address-family",
+                    "send-receive": "both"
+                },
+                {
+                    "afi": "bgp-linkstate:linkstate-address-family",
+                    "safi": "bgp-linkstate:linkstate-subsequent-address-family"
+                }
+            ],
+            "effective-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {
+                            "ipv4-route": [
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.1/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                },
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.2/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                }
+                            ]
+                        },
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    }
+                ]
+            },
+            "adj-rib-out": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {
+                            "ipv4-route": [
+                                {
+                                    "path-id": 1,
+                                    "prefix": "10.0.0.11/32",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "igp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "10.11.1.1"
+                                        }
+                                    }
+                                }
+                            ]
+                        },
+                        "attributes": {
+                            "uptodate": false
+                        }
+                    }
+                ]
+            },
+            "peer-role": "ibgp",
+            "adj-rib-in": {
+                "tables": [
+                    {
+                        "afi": "bgp-linkstate:linkstate-address-family",
+                        "safi": "bgp-linkstate:linkstate-subsequent-address-family",
+                        "bgp-linkstate:linkstate-routes": {},
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    },
+                    {
+                        "afi": "bgp-types:ipv4-address-family",
+                        "safi": "bgp-types:unicast-subsequent-address-family",
+                        "bgp-inet:ipv4-routes": {
+                            "ipv4-route": [
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.1/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                },
+                                {
+                                    "path-id": 5,
+                                    "prefix": "1.1.1.2/31",
+                                    "attributes": {
+                                        "as-path": {},
+                                        "origin": {
+                                            "value": "egp"
+                                        },
+                                        "local-pref": {
+                                            "pref": 100
+                                        },
+                                        "ipv4-next-hop": {
+                                            "global": "127.1.1.1"
+                                        },
+                                        "multi-exit-disc": {
+                                            "med": 0
+                                        }
+                                    }
+                                }
+                            ]
+                        },
+                        "attributes": {
+                            "uptodate": true
+                        }
+                    }
+                ]
+            }
+        }
+    ]
+}
+----
+
+Also the same route should appeared in Loc-RIB now:
+
+*URL:* http://localhost:8183/restconf/operational/bgp-rib:bgp-rib/rib/hc-bgp-instance/loc-rib
+
+*Method:* GET
+
+*Response body:*
+
+[source,json]
+----
+{
+    "loc-rib": {
+        "tables": [
+            {
+                "afi": "bgp-types:ipv4-address-family",
+                "safi": "bgp-types:unicast-subsequent-address-family",
+                "bgp-inet:ipv4-routes": {
+                    "ipv4-route": [
+                        {
+                            "path-id": 1,
+                            "prefix": "10.0.0.11/32",
+                            "attributes": {
+                                "as-path": {},
+                                "origin": {
+                                    "value": "igp"
+                                },
+                                "local-pref": {
+                                    "pref": 100
+                                },
+                                "ipv4-next-hop": {
+                                    "global": "10.11.1.1"
+                                }
+                            }
+                        },
+                        {
+                            "path-id": 1,
+                            "prefix": "1.1.1.1/31",
+                            "attributes": {
+                                "as-path": {},
+                                "origin": {
+                                    "value": "egp"
+                                },
+                                "local-pref": {
+                                    "pref": 100
+                                },
+                                "ipv4-next-hop": {
+                                    "global": "127.1.1.1"
+                                },
+                                "multi-exit-disc": {
+                                    "med": 0
+                                }
+                            }
+                        },
+                        {
+                            "path-id": 1,
+                            "prefix": "1.1.1.2/31",
+                            "attributes": {
+                                "as-path": {},
+                                "origin": {
+                                    "value": "egp"
+                                },
+                                "local-pref": {
+                                    "pref": 100
+                                },
+                                "ipv4-next-hop": {
+                                    "global": "127.1.1.1"
+                                },
+                                "multi-exit-disc": {
+                                    "med": 0
+                                }
+                            }
+                        }
+                    ]
+                }
+            },
+            {
+                "afi": "bgp-types:ipv4-address-family",
+                "safi": "bgp-labeled-unicast:labeled-unicast-subsequent-address-family",
+                "bgp-labeled-unicast:labeled-unicast-routes": {}
+            }
+        ]
+    }
+}
+----
+
+
+== Integration with VPP
+
+Honeycomb BGP implementation emits notifications on loc-rib modifications.
+Hc2vpp provides BgpInetModule module which translates
+link:http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#ip-unicast-api[IPv4/IPv6 unicast]
+routes from loc-rib into VPP FIB.
+
+The BgpInetModule is disabled by default. To enable it, edit
+
+  modules/io-fd-hc2vpp-integration_vpp-integration-distribution_1-17-07-module-config
+
+in distribution dir (/opt/honeycomb in case honeycomb was installed from package), then restart honeycomb.
+
+Let's add route using Application Peer:
+
+*URL:* http://localhost:8183/restconf/config/bgp-rib:application-rib/10.25.1.9/tables/bgp-types:ipv4-address-family/bgp-types:unicast-subsequent-address-family/bgp-inet:ipv4-routes/ipv4-route/10.0.0.12%2F32/0
+
+*Method:* PUT
+
+*Request body:*
+
+[source,xml]
+----
+<ipv4-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp-inet">
+    <path-id>0</path-id>
+    <prefix>10.0.0.12/32</prefix>
+    <attributes>
+        <as-path></as-path>
+        <origin>
+            <value>igp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <ipv4-next-hop>
+            <global>10.11.1.1</global>
+        </ipv4-next-hop>
+    </attributes>
+</ipv4-route>
+----
+
+Also the same route should appeared in VPP now:
+
+*URL:* http://localhost:8183/restconf/operational/hc2vpp-ietf-routing:routing-state/routing-instance/vpp-routing-instance/routing-protocols/routing-protocol/learned-protocol-0/static-routes/hc2vpp-ietf-ipv4-unicast-routing:ipv4
+
+*Method:* GET
+
+*Response body:*
+
+[source,json]
+----
+{
+    "hc2vpp-ietf-ipv4-unicast-routing:ipv4": {
+        "route": [
+            {
+                "id": 0,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "0.0.0.0/0"
+            },
+            {
+                "id": 1,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "0.0.0.0/32"
+            },
+            {
+                "id": 7,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "10.11.1.1",
+                "destination-prefix": "10.0.0.12/32"
+            },
+            {
+                "id": 8,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "10.11.1.1/32"
+            },
+            {
+                "id": 2,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "224.0.0.0/4"
+            },
+            {
+                "id": 3,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "240.0.0.0/4"
+            },
+            {
+                "id": 4,
+                "vpp-ipv4-route-state": {},
+                "next-hop": "0.0.0.0",
+                "destination-prefix": "255.255.255.255/32"
+            }
+        ]
+    }
+}
+----
+
+NOTE: Honeycomb persists config state between restarts. So you may also see 10.0.0.11 route that was added first.
+In order to remove persisted configuration, simply rm -rf /var/lib/honeycomb before starting honeycomb.
+
+== Postman collection with examples
+
+All the request examples can be found {project-git-web}/bgp/bgp_postman_collection?h={project-branch}[BGP postman collection].
\ No newline at end of file
index 1c7390a..e66e1af 100644 (file)
@@ -81,3 +81,5 @@ Honeycomb's configuration files present within its distribution:
 * VPP classifier plugin
 ** {project-git-web}/vpp-classifier/vpp_classifier_postman_collection.json?h={project-branch}[VPP classifier postman collection]
 ** {project-git-web}/vpp-classifier/policer_postman_collection.json?h={project-branch}[Policer postman collection]
+* BGP plugin
+** {project-git-web}/bgp/bgp_postman_collection?h={project-branch}[BGP postman collection].
index a60025c..aeefbd9 100644 (file)
@@ -116,4 +116,8 @@ To use:
 NOTE: All POSTMAN collections are listed under User Guide.
 
 ==== Listening for notifications
-Notifications over RESTCONF are not supported due to ODL's RESTCONF limitations.
\ No newline at end of file
+Notifications over RESTCONF are not supported due to ODL's RESTCONF limitations.
+
+=== Using BGP
+
+* link:bgp_in_honeycomb_user_guide.html[BGP configuration in Honeycomb]
\ No newline at end of file