summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-06-22HC2VPP-88: translation layer for af_packet interface managementMarek Gradzki10-102/+736
Includes postman collection with RESTCONF examples. Change-Id: If6f7ba1e2e7ab37433ebc5215e4731f1193c62a2 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-21HC2VPP-88: yang model for af_packet interface managementMarek Gradzki1-0/+31
Change-Id: Iaa21ad832d03f36d7d8a6f63a68a6a7ece7c9b8d Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-21Fix NPE in InterfaceDataTranslator.isInterfaceOfTypeMarek Gradzki2-6/+55
SwInterfaceDetails returned by dump manager are nullable. In that case isInterfaceOfType should return false. Change-Id: Iaf3d1f6c6923ed6863357fe2470716f135b6164f Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-20Add SRv6 5 node docker demoMichal Cmarada16-15/+1089
This demo is intended to test SRv6 implementation. There are two options how to run the demo. First one is to use VPP only configuration and the second one uses honeycomb to configure SRv6 on nodes. For detailed information about the demo read documentation in ./asciidoc/Readme.adoc file. Follow the instructions to run the demo and use provided commands to verify the operation of VPP nodes. Change-Id: I7d17db0096cc48b06e9148e7c78faaf9d7b8a97d Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-19HC2VPP-304 - add SRv6 policy moduleMichal Cmarada56-10/+6395
new models: - hc2vpp-oc-srte-policy@2017-09-18.yang (ietf draft for srte-policies) - vpp-oc-srte-policy@2018-05-14.yang (augments oc-srte-policy model with VPP specific configuration) - policy-context@2018-06-07.yang defines policy contexts for policies and candidate paths new features: - adds support for writing/reading SRv6 policies - adds support for writing/reading L2 steering - adds support for writing/reading L3 steering - implements support for FIB table management (HC2VPP-345) Change-Id: Ie83ac8ecdcc0e46086e1ecdaecbb811746151c2f Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-19HC2VPP-288 - add readers for SRv6 moduleMichal Cmarada39-100/+2101
Changes: - add locator context to map locator name to locator IPv6Prefix - add readers for SRv6 module - implements reading of local sids and their end functions. - implements support for FIB table management (HC2VPP-345) Change-Id: Ib04402539a0b6666c5a1d0b4e1b5b5e08ccbf67b Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-19HC2VPP-288 - add SRv6 module (writers only)Michal Cmarada58-1/+7768
Changes: - add new module for SRv6 - add models for SRv6 configuration: from https://datatracker.ietf.org/doc/draft-raza-spring-srv6-yang/ - hc2vpp-ietf-srv6-base@2018-03-01.yang - hc2vpp-ietf-srv6-static@2018-03-01.yang - ietf-srv6-types@2018-03-01.yang - implements Configuration of local sids and their end functions. - implements support for FIB table management (HC2VPP-345) Models hc2vpp-ietf-srv6-base and hc2vpp-ietf-srv6-static are changed (HC2VPP-332): - imports for routing models (HC2VPP-298) - presence in end function containers was added to fix mandatory child verification if parent container is not present Change-Id: Ib74e48023b671383f076b84773e26ce7c5ae282a Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech> Signed-off-by: Jan Srnicek <jan.srnicek@pantheon.tech>
2018-06-18HC2VPP-317: Update FIB management moduleMichal Cmarada1-5/+24
- added type definitions for referencing FIB tables from different data modules Change-Id: I92a25107db6937dc94b4e719f2da2b8c77ebdac4 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-15Add configuration for mtu in docker examplesMichal Cmarada1-0/+4
VPP is using mtu=9000 for interfaces that it creates. This fixes the mtu value for veth interfaces on linux side so they match the value configured in VPP for all veth interfaces in docker examples. Originally veth interfaces use smaller value since Linux automatically sets their MTU to be the smallest MTU of their slave ports. For VPP this means if a bigger frame is sent outside to the veth interface it will be dropped. Change-Id: I41117490ec80a0b2d2d2897493c2690f92766734 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-14l3: remove redundant stubbing for WriteContext.readBeforeMarek Gradzki3-53/+0
Change-Id: I8c4cc2564ad0f4c6452984234d4c9466677db052 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-13api-coverage: include JVppGtpu and JVppPppoeMarek Gradzki2-9/+23
Change-Id: I44151a33aba3fb9ad877f9d4eb6c424673a4632a Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-11HC2VPP-354: use hw_interface_set_mtu for Ethernet interfacesMarek Gradzki4-12/+25
The API was renamed by https://gerrit.fd.io/r/#/c/12930/ The VPP change spearates setting of hardware interface and software interface MTU. More details: https://git.fd.io/vpp/tree/src/vnet/MTU.md HC supports only hardware interface MTU configuration for Ethernet interfaces. MTU for software interfaces (per protocol MTU) is not supported (HC2VPP-355). Change-Id: I7eb1cb035a7b0f428a7bc7a9bb1c73819b52f0fa Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-08HC2VPP-317 - Implement FIB table management supportMichal Cmarada33-81/+1534
changes: - Added new custom model vpp-fib-table-management - allows management of IPv4 and IPv6 Fib tables for VPP Change-Id: I3647dd659dbefabab233eacef666c3835e69320d Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-06-07HONEYCOMB-432: adapt hc2vpp to ODL Oxygen SR1 bumpMarek Gradzki3-6/+10
Requires https://gerrit.fd.io/r/#/c/12239/ Change-Id: Ideb4c0503b31b33aefa35a7840ee0d73d2912509 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-05HC2VPP-336: reenable NSH pluginMarek Gradzki8-10/+71
This patch reverts https://gerrit.fd.io/r/#/c/12822/ and bumps jvpp nsh_sfc dependency to 18.07-SNAPSHOT. Change-Id: Idce70d39c9c273b7db3c771430ef5af58417b43b Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-01HC2VPP-342: fix when condition in l2-fib-entry definitionMarek Gradzki1-1/+1
ODL Yangtools does not enforce when statements, so model revision was not changed. Change-Id: If46fd3bfa7932a056e0a8064837d4c42de5cfdb5 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-06-01HC2VPP-339: convert postman collections to v2.1.0 formatMarek Gradzki40-7746/+25872
Mantaining postman collections in v1 format is difficult due to UID strings. Postman collection v2 fixes the issue and many others, see http://blog.getpostman.com/2015/06/05/travelogue-of-postman-collection-format-v2/ Collections in v1 format, were converted using postman-collection-transformer. Output was transformed using JSON.stringify with space='\t', to be compliant with Postman application which does not support spaces for indentation. Coverted collections were tested using Postman v6.1.3. Previous version of postman collections were renamed to *_v1.0.0.json or *_v2.0.0.json. Removal is planned in 18.10 (HC2VPP-338). Change-Id: I6caf496293fccc1f9aadcdece668b5200fe07122 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-31nat: postman collection cleanupMarek Gradzki1-13/+13
Change-Id: I25a7742289753bd0bb2ef49d4a1e609cf8570a9d Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-31Convert NAT postman collection to v2.1.0Marek Gradzki2-807/+2162
Old collection was renamed to nat_postman_collection_v1.0.0.json Change-Id: I34994f4e3bfaa8e6937b318d2a4c059a1523dbfc Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-31HC2VPP-325: use ip-prefix instead of ip-address in ietf-nat@2018-02-23.yangMarek Gradzki14-84/+87
Only /32 prefix for IPv4 and /128 for IPv6 are supported. Change-Id: I875b1eb6c2cb43da54de0a731aeeb9757b39c39c Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-31Update AddressTranslatorMichal Cmarada2-1/+94
- added handling of IpPrefixe - added UnitTests for the whole class Change-Id: I9fbdcce1ca8734b7415c55559ef65e553e737e44 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-31HC2VPP-336: disable NSH pluginMarek Gradzki7-70/+3
nsh_sfc 18.07-SNAPSHOT artifacts are missing in the https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/nsh_sfc/nsh-sfc/ repo, which causes hc2vpp build failures. As a workaround nsh plugin was disabled. Change-Id: If65f783f85f9b491f7caea63a51c70e4b4ad39c6 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-29jvpp-benchmark: introduce abstract JVppBenchmarkMarek Gradzki4-161/+170
Change-Id: I957edd6813b1be43232845d9bf6a4f13ed01ecfb Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-29jvpp-benchmark: include project version in the shaded artifact nameMarek Gradzki3-16/+15
Renames shaded jar name from jvpp-benchmark-exec.jar to jvpp-benchmark-1.18.07-SNAPSHOT-executable.jar Change-Id: I593946dde3a6fc1717644e7315110aa94553d91d Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-29jvpp-benchmark: measure classifyAddDelTableMarek Gradzki9-22/+308
Synchronously creates classify tables. By default 20x2s warmup and 100x2s measurement iterations are performed. VPP is restarted after each iteration. Each invocation of classifyAddDelTable uses tables from precomputed set of size tableSetSize. Tables from the set are used in round-robin fashion. Run with: sudo java -jar ./target/jvpp-benchmark-exec.jar \ ClassifyTableCreateBenchmark To specify aclSetSize (default=100), use: sudo java -jar ./target/jvpp-benchmark-exec.jar \ ClassifyTableCreateBenchmark -p tableSetSize=1000 To see more options, use java -jar ./target/jvpp-benchmark-exec.jar -h Change-Id: I387d879bc99dce45f93d66e8a99f7206f067b443 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-26jvpp-benchmark: add option to select interface modeMarek Gradzki4-11/+82
Changes: - use loopback interface instead of local0, - if L3 (default) mode is selected, assing IP to the loop0 interface, - if L2 mode is selected, create bridge domain and assing loop0 the BD. To test interface in L2 mode, use: sudo java -jar ./target/jvpp-benchmark-exec.jar -p mode=L2 Change-Id: I8450d42fe0d164c6dbedf1dacf1444a25d9932b8 Signed-off-by: Marek Gradzki <mgradzki@cisco.com> (cherry picked from commit 6e5446c9d64df7f2cbde857d276e8685c9175089)
2018-05-25ProxyRangeCustomizer: use ProxyArp typeMarek Gradzki2-6/+10
Fixes compilation issues caused by recent VPP ip.api change: https://gerrit.fd.io/r/#/c/12693/ Change-Id: Ibbf2b9ceaf6b214f2cbe80e57bc21f6541680739 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-24jvpp-benchmark: add script for running various test casesMarek Gradzki1-0/+35
Change-Id: I689adb9e139ff22a48cf82e27e8501d542edef72 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-24jvpp-benchmark: fix IP generationMarek Gradzki4-15/+86
Change-Id: I5ab4465f25c13e0f3b89e2757bde9dd47c660732 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-24JVpp JMH benchmarkMarek Gradzki6-0/+432
Creates ACL of size aclSize using acl_add_replace, then assigns it to local0 using acl_interface_set_acl_list. Then ACL is updated synchronously using acl_add_replace. By default 20x2s warmup and 100x2s measurment iterations are performed. VPP is restarted after each iteration. Each invocation of acl_add_replace uses ACL from precomputed set of ACLs of size aclSetSize. ACLs from the set are used in round-robin fashion. Compile: cd $HC2VPP_ROOT/it/jvpp-benchmark mvn clean install Run with: sudo java -jar ./target/jvpp-benchmark-exec.jar To specify aclSize (default=100), use: sudo java -jar ./target/jvpp-benchmark-exec.jar -p aclSize=1000 To specify aclSetSize (default=100), use: sudo java -jar ./target/jvpp-benchmark-exec.jar -p aclSetSize=1000 To see more options, use java -jar ./target/jvpp-benchmark-exec.jar -h Change-Id: I43691ba891940a1c341f8e9893c8598c811bc077 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-18Fix copyright for PantheonMichal Cmarada11-11/+11
- add full name for Pantheon Technologies in copyright. Change-Id: I653425ab952c09d4b8f9cedf4367bc8f56642ee3 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-17HC2VPP-320: ensure at most one policy is configured per NAT instanceMarek Gradzki3-2/+152
ReflexiveListReaderCustomizer is not used due to HONEYCOMB-437 Change-Id: I62755aaedd6e179b349ec47e4a304399c4fa18cd Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-17HC2VPP-322: ensure at most one nat64-prefix is configured per NAT instanceMarek Gradzki3-2/+84
Change-Id: Ic52b386475836e8f1a749cccaafe3bb4e192d0b7 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-17HC2VPP-323: update postman collection after NAT model updateMarek Gradzki1-17/+17
Change-Id: I2c767664f0178318a54ab1b4e14a7f7c92bf9c6e Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-17HC2VPP-321: bump nat model to ietf-nat@2018-02-23.yangMarek Gradzki29-1525/+2838
Uses ietf-nat module as defined in https://tools.ietf.org/html/draft-ietf-opsawg-nat-yang-14 Modifications to original model: - ip-address is used instead of ip-prefix (draft is not clear, see HC2VPP-325). API changes relevant to HC/VPP: - nat-config and nat-state merged into nat container - nat-instances and nat-instace renamed to instances and instance respectively - external-ip-address-pool has new parent - policy list - port-type choice was removed, port is now defined using start-port-number and end-port-number leaves. Missing end is equivalent to single-port-number case from the older version. TODOs: - HC2VPP-322: single nat64Prefix per NAT instance - HC2VPP-323: update postman collection - HC2VPP-324: update CSIT tests. Out of the scope of NAT model update: - HC2VPP-326: support for nat-type handling (vpp-nat model might become obsolete) - HC2VPP-327: support external-realm container (requires adding augmentations that are alredy present in the interface-nat model). Change-Id: Ie229a55b0a3f6ee3f8c97f4fd13c54a797a62438 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-16docker: fix path in copy_packages.shMarek Gradzki1-1/+1
Change-Id: I737000a63c81d6812a8fb6aa6d4d8d6b87ffdc7d Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-16routing: log FibTableDoesNotExistException in ControlPlaneProtocolCustomizerMarek Gradzki1-2/+2
Fixes issue reported by Sonar. Change-Id: Ibbf5f39358e551a9de9a9602050184aba3c02e92 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-16routing: remove unused code from FibTableRequestMarek Gradzki2-24/+4
Removes delete method and dependency on FibTable service. Change-Id: I7b34cb8f80bb00379846501ddd1b2c3d4f049bb6 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-11HC2VPP-297 - MPLS model updatesMichal Cmarada16-1554/+1827
This patch updates MPLS models to: - hc2vpp-ietf-mpls-static@2017-07-02.yang (draft at: https://tools.ietf.org/html/draft-ietf-mpls-static-yang-05) Due to odl bugs these models were changed, see HC2VPP-307 for more details. see mpls_postman_collection.json for examples and usage Summary of changes: - leaf operation in static-lsp->config was replaced with mpls-operations-type - paths were refactored and moved to static-lsp - outgoing-labels container was introduced in static-lsp->paths - MPLS docker demo was updated to reflect model changes Change-Id: I725ec5e4b3a1acea2aeabec41185949fc498ff26 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-11NAT: fix port readMarek Gradzki2-25/+70
Change-Id: I2aceb52f9c3bace7107f203ed717fe7d1c649328 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-10HC2VPP-317 - Add FibService and FibTableServiceMichal Cmarada11-7/+497
VPP doesn`t support auto create for Fib tables anymore, when adding a new route. Adding FibService to check if table exists and FibTableService to add or delete ipv4/6 fib tables. Note: Need to implement full support for Fib Table management later. Change-Id: I15bd1b62357ab24a5eac970113bfcd2a52d29491 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-09HC2VPP-253 - Bump routing modelsMichal Cmarada111-5917/+6020
This patch updates (for support of SRv6 and MPLS) routing models to: - hc2vpp-ietf-routing@2018-03-13.yang (RFC 8349, https://tools.ietf.org/html/rfc8349) - hc2vpp-ietf-ipv4-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-router-advertisements@2018-03-13 (RFC 8349) - hc2vpp-ietf-routing-types@2017-12-04 (RFC 8294 ,https://tools.ietf.org/html/rfc8294) Due to odl bugs these models were changed, see HC2VPP-298 for more details. Significant changes in updated models: - Routing instance was removed, we used vpp-routing-instance as single instance before, which is no longer needed. - Routing-protocol and Routing-protocols were refactored to Control-plane-protocol/s. Control-protocol now uses type and name as key - Route Key was changed from id to ipPrefix - Next-hop and Next-Hop-list were refactored See attached routing_postman_collection.json for updated data structures and examples for both IPv4 and IPv6 routes. For router advertisements see routing_advertisments_postman_collection.json Another fixes in this patch: - fixes in MPLS module due to Routing model updates - fixes doc module due to changes in Routing model Change-Id: I33704a50061aef97dfbd73a7701ff6fe5274d6f0 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-09HC2VPP-316 - Fix docs generation for augments without qnameMichal Cmarada2-1/+25
this fixes bug when model augments case and augment generated class does not contain qname. Change-Id: I6b088d9dce46015e2c7c374b0197bedb5e868e79 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-09HC2VPP-316 - Fix isTableLookup checkMichal Cmarada1-2/+1
Fixing condition, because VPP-995 is not relevant anymore. Change-Id: Ie444817c265f6a3e01b7694e60fd0ce76ec15bc5 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-03HC2VPP-314 - fix for IPV6 routes with 128 subnet prefixMichal Cmarada3-3/+3
VPP uses byte in range of 0 to 255 but when jni is used and this type is converted to java byte which has range of -128 to 127 it will convert it to negative value. It then fails to create Ip6Prefix from this value. Change-Id: Ic18686959682c153da2e4ee4a7f7841c9b56e5d3 Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
2018-05-02examples/ncclient: update Readme.txt with more detailed instructionsMarek Gradzki1-4/+22
Change-Id: If22b47736937428b1aa84105ba589f53be8d35fa Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-02HC2VPP-313: <copy-config> examples using nnclient libraryMarek Gradzki18-0/+1530
Shows how to configure VPP using nnclient library. Requires following changes to ODL Netconf (HC2VPP-312): - <copy-config> support: https://git.opendaylight.org/gerrit/#/c/69606/ - various fixes to make ODL Netconf compatible with nnclient: https://git.opendaylight.org/gerrit/#/c/71181/ and ncclient library with the following change: https://github.com/marekgr/ncclient/commit/fbc31b06daf114c11dcb6bf1bcfac9127b2e0062 Change-Id: I3dceb8ead6e6f558a3c76f6c1c3b0ba5f7c52f93 Signed-off-by: Marek Gradzki <mgradzki@cisco.com> (cherry picked from commit 2e96f3423a2619cd2aa9d188de513723416c15e6)
2018-05-02javadoc: add missing <name> in pom filesMarek Gradzki11-1/+11
Change-Id: I9f892e528326cb13cafc20bc9e2d7e6a94c7d407 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-02Move docker files to examples directoryMarek Gradzki35-0/+0
Change-Id: Ib2eb3dbae76a1e9b5d98ce9e0d5eea9adba280cf Signed-off-by: Marek Gradzki <mgradzki@cisco.com> (cherry picked from commit e4c58493ce5265ea0d1e17d160c339401c406186)
2018-04-27api-docs: update dependencies version to match hc2vpp parentMarek Gradzki2-4/+4
See: HC2VPP-311 Change-Id: I37329703943483211635bc6729f6751f5537ded0 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>