= Building

== Custom ODL Oxygen build:

[source]
----
git clone https://git.opendaylight.org/gerrit/netconf
cd netconf
git checkout -b honeycomb release/oxygen
----

=== <copy-config> support:

[source]
----
git fetch https://git.opendaylight.org/gerrit/netconf refs/changes/06/69606/1 && git cherry-pick FETCH_HEAD
----

=== ncclient support:

[source]
----
git fetch https://git.opendaylight.org/gerrit/netconf refs/changes/81/71181/1 && git cherry-pick FETCH_HEAD
mvn clean install -pl netconf/netconf-util,netconf/netconf-netty-util,netconf/mdsal-netconf-connector
----

=== <validate> support:

[source]
----
git fetch https://git.opendaylight.org/gerrit/netconf refs/changes/56/72756/4 && git cherry-pick FETCH_HEAD
git fetch https://git.opendaylight.org/gerrit/netconf refs/changes/34/73034/2 && git cherry-pick FETCH_HEAD
git fetch https://git.opendaylight.org/gerrit/netconf refs/changes/95/74795/3 && git cherry-pick FETCH_HEAD
mvn clean install -pl netconf/mdsal-netconf-connector
----

== Custom Honeycomb build

Clone project, checkout desired branch or use master branch:
[source]
----
git clone https://gerrit.fd.io/r/honeycomb
cd honeycomb
----

=== <validate> support:
[source]
----
git fetch ssh://mgradzki@gerrit.fd.io:29418/honeycomb refs/changes/40/14040/3 && git cherry-pick FETCH_HEAD
mvn clean install -pl infra/data-impl
----

== Custom HC2VPP build

1. Clone project, checkout desired branch or use master branch:
[source]
----
git clone https://gerrit.fd.io/r/hc2vpp
cd hc2vpp
----

2. Build vpp-integration module from hc2vpp project:
[source]
----
mvn clean install -pl vpp-integration/minimal-distribution
----

3. (optional) Build honeycomb package
[source]
----
./packaging/deb/xenial/debuild.sh
----

== Build ncclient

[source]
----
git clone https://github.com/ncclient/ncclient.git
cd ncclient
sudo python setup.py install
----

= Running examples

Start vpp.

Start honeycomb
(either from hc2vpp builddir or using package built in previous steps).

NOTE: Remember that HC by default persists config and restores it after restart.
You can disable this behaviour using config/honeycomb.json.

== <copy-config>

=== ACL

Example configuration of ACLs on loopback interface.

[source]
----
./acl/test_acl.sh
./acl/test_acl_updates.sh
----

=== Bridge Domain

Example configuration of loopback interface and bridge domain assignment.

[source]
----
./bd/test_bd.sh
----

=== NAT

Example configuration of NAT on loopback interface.

[source]
----
./acl/test_nat.sh
./acl/test_nat_updates.sh
----

== <validate>

== ACL <edit-config> + <validate>
[source]
----
./edit_config.py --validate acl/config_invalid_acl.xml
----

== URL capability

Provide URL as source or target.
Source URL can use file, http, https or ftp protocol.
Target URL can use file protocol.

When using file protocol, provided patch should correspond to a file accessible by Honeycomb.

Example:

[source]
----
./copy_config_url.py "file:///home/m/hc2vpp/examples/ncclient/bd/config_bd.xml" candidate
----


