summaryrefslogtreecommitdiffstats
path: root/src/vpp-api/vom
AgeCommit message (Collapse)AuthorFilesLines
2018-03-06VOM: Fix state reconciliationMohsin Kazmi11-67/+165
This commit also fixes the acl and arp handle for inspector to view internal state of VOM. Change-Id: Ibc8ff6cb51d2a77b4c04993ac7212564b8892337 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-27VOM: interface: Fix the vhost user interfaceMohsin Kazmi2-1/+5
Change-Id: I38904dafb4110322ec0138f7a5b3a65c96426b2b Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-22VOM: vhost-use interfacesNeale Ranns7-15/+303
Change-Id: Iee1574d1f0f081ccc4a90fd9825a0b5e254aa642 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-19VOM: acl: Some necessary fixesMohsin Kazmi3-7/+13
It: 1. changes ethertype_rule_t to hold actual objects instead of reference to them. 2. fixes acl_ethertype 'update' function 3. fixes pretty-print of acl-list-update. 4. adds l3-acl update unit test. Change-Id: Iec72212806e96bd0574b46b563de79f0744cb248 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-15VOM: Fix broken MakefileMohsin Kazmi1-1/+1
Typo mistake broken the makefile which results in missing vom headers in system. Change-Id: Ic2e5f742f0e38140559138b4aa7564f8c25b73e4 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-14VOM: build with plugins disabledNeale Ranns3-30/+79
Change-Id: I1384d16deb3fa38b988dd2fc98f436124e381536 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-02-13VOM: ACL: Add Object Model for acl ethertypeMohsin Kazmi7-0/+747
Change-Id: I2b572ebd4b7bb26381f127912a4cc0825c04fc34 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-02-09GBP pluginNeale Ranns11-3/+1339
Group Base Policy (GBP) defines: - endpoints: typically a VM or container that is connected to the virtual switch/router (i.e. to VPP) - endpoint-group: (EPG) a collection of endpoints - policy: rules determining which traffic can pass between EPGs a.k.a a 'contract' Here, policy is implemented via an ACL. EPG classification for transit packets is determined by: - source EPG: from the packet's input interface - destination EPG: from the packet's destination IP address. Change-Id: I7b983844826b5fc3d49e21353ebda9df9b224e25 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-02-02VOM: route-domain find() fixNeale Ranns3-24/+5
Change-Id: I5b7117f3568e3ba979baa15521b2cfc180abb682 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-01-23For DHCP client configuration control the setting of the broadcast flag in theNeale Ranns4-6/+28
DISCOVER message sent. According to RFC2131: In the case of a client using DHCP for initial configuration (before the client's TCP/IP software has been completely configured), DHCP requires creative use of the client's TCP/IP software and liberal interpretation of RFC 1122. The TCP/IP software SHOULD accept and forward to the IP layer any IP packets delivered to the client's hardware address before the IP address is configured; DHCP servers and BOOTP relay agents may not be able to deliver DHCP messages to clients that cannot accept hardware unicast datagrams before the TCP/IP software is configured. To work around some clients that cannot accept IP unicast datagrams before the TCP/IP software is configured as discussed in the previous paragraph, DHCP uses the 'flags' field [21]. The leftmost bit is defined as the BROADCAST (B) flag. The semantics of this flag are discussed in section 4.1 of this document. The remaining bits of the flags field are reserved for future use. They MUST be set to zero by clients and ignored by servers and relay agents. Figure 2 gives the format of the 'flags' field. this changes means VPP conforms to the: "SHOULD accept and forward to the IP layer any IP packets delivered to the client's hardware address before the IP address is configured" with the caveat that VPP allows DHCP packets destined to the stanard client DHCP port to be delivered. With this enhancement the control-plane is now able to choose the setting of the broadcast flag. Change-Id: Ia4eb2c9bb1e30c29f9192facc645e9533641955a Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-22vom: acl: Fix l3 acl handle populateMohsin Kazmi3-0/+21
Change-Id: I5f105a1abb8a28645d6c961ad92f91c23787047f Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-01-22vom: ip_route: fix handle populateMohsin Kazmi1-5/+15
Change-Id: I91892084133daadb74caa7aa13ee1071599ba892 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-01-22vom: Fix connection to VAPI and add disconnect functionMohsin Kazmi6-28/+48
Change-Id: I2dd5dbafe36e5ae536b3e600beb6920a71238b7a Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-01-10makefile set CXXFLAGS so they are propageted to sub-buildsNeale Ranns1-2/+1
Change-Id: I55d9953851062f7106c66701d46bcd9073cf1ee4 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-01-09Revert "VOM: fix cflags"Dave Wallace1-2/+1
This reverts commit 4363ad6c96b5641fca1b16c5a6ec22e2364adcfd. Change-Id: Ie71ee265659e06ada37f40cfceed4c20b1cbf6e5 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-01-09VOM: fix cflagsNeale Ranns1-1/+2
override the default CXXFLAGS (which provides a -O2) with the system set CFLAGS (providing -O0/-O2 for debug/release builds) Change-Id: Ic84e51baafdc22d37139303566d705d759e36721 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-09DVR: run L3 output featuresNeale Ranns5-25/+95
- rename l2_bridged to is_dvr. Including on the ip.api this was new in the 18.01 release so no compatability issues. - steal the free space in vnet_buffer_opaque_t for use with flags. - run the ipX-output feature arc from the DVR DPO Change-Id: I040e5976d1dbe076fcdda3a40a7804f56337ce3f Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-04VOM: NAT coverity found bugsNeale Ranns2-3/+3
Change-Id: Ic55ad2e0a1435f552ce84ed1a9b1981191bc178b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-02VOM: NAT updatesNeale Ranns12-174/+518
Change-Id: I112afaa1f2ccd2ee62a436c73802afaea9b44779 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-20L2 EmulationNeale Ranns6-1/+560
L2 Emulation is a feautre that is applied to L2 ports to 'extract' IP packets from the L2 path and inject them into the L3 path (i.e. into the appropriate ip[4|6]_input node). L3 routes in the table_id for that interface should then be configured as DVR routes, therefore the forwarded packet has the L2 header preserved and togehter the L3 routed system behaves like an L2 bridge. Change-Id: I8effd7e2f4c67ee277b73c7bc79aa3e5a3e34d03 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-12-14vom: acl: Extend constructor for l3 ruleMohsin Kazmi2-9/+23
New constructor can construct the l3 rule using all or partial paratmeters. Change-Id: I828ec1c4713decb5824e4a73c3692cebc2324cc2 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-14vom: acl-list: Add comparison operator - for UTMohsin Kazmi1-0/+12
Change-Id: I341f522b46dd85fb3b1dd43fd125513f16f89171 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-13VOM: a couple of print fixesNeale Ranns2-2/+3
Change-Id: I4c22ad08bf8fa3e8f05b8938ff447cafa4eea5b2 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-08vom: acl-l3: Fix pretty print for TCP mask and flagsMohsin Kazmi1-2/+2
Change-Id: If14d1b2d9b73de77321d94f10d48fa1bb04846f6 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-08VOM: prefix bit fiddlingNeale Ranns3-19/+130
Change-Id: I4fbf4a574f455628d56e78cefc1a76adc06bc801 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-02VOM: l2fib: Add bvi flag supportMohsin Kazmi3-13/+29
Change-Id: I03d7508649e80a538fcf9541815e2c29224bc87a Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-01VOM: fixes for interface recreate on agent restart and L2 re-bindingNeale Ranns4-10/+24
Change-Id: I14c838ee99f9bc2db66bb2e775039d2cb2e7924f Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-29VOM: logging, populate and stats fixesNeale Ranns22-251/+372
logging: allow a client to register a callback handler to recieve log messages that way the client can maintain a correctly sequenced log populate: fix the creation of interface and the setting of the handle stats: the reset promise idea is not defined behaviour. Use an eanble/disable command pair Change-Id: I347720bb65df2874c7619e722d593bc863ee2bf1 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-27VOM: favour make_sharedNeale Ranns13-45/+49
Change-Id: I0c5e198049d510f3b3f9a6aefe49c315449768e3 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-25VOM: handle null for iterator in dump cmdNeale Ranns1-2/+21
Change-Id: I2e8743d70a8d8604d370218a73d5f37c2f7c4617 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-24VOM: Additions to allow uses to UT applications that use VOMNeale Ranns51-295/+676
- find object by key - compare objects Change-Id: I36ec8612be9482bcef7ceced2a59f7403f77b3e8 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-22VOM: stats: Associate stat obj to interfaceMohsin Kazmi5-25/+71
Change-Id: Id8b159dd72b92798538a32fe570fb0038d742ef2 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-17VOM fixes and logger improvementsNeale Ranns7-30/+47
Change-Id: I5e3fa5e098a8ea26dbc3d3a1dc064e3507e33d8e Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-15VOM: interface's handle() retreives from singular instanceNeale Ranns2-0/+11
Change-Id: I262f2113f5805c0f89b615a0383efa8520184dd1 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-15VOM: interface RD update reconfigures L3 bindingsNeale Ranns4-21/+82
Change-Id: I273e1ea28c3c146e4a88d031c790c1cc56dccf00 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-14VOM: bridge-domain learning mode and route help commandsNeale Ranns8-7/+125
Change-Id: I2fa219d6530f1e7a3b8ae32d35a0c60ba57c5129 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-10Break up vpe.apiNeale Ranns2-2/+2
- makes the VAPI generated file more consumable. - VOM build times improve. Change-Id: I838488930bd23a0d3818adfdffdbca3eead382df Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-10VOM: enum_base - not constexpr to appease coverityNeale Ranns1-23/+23
Change-Id: Id87e245882eab80a85a2883ffdb7a0f3b7f26a75 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-10VOM: memset DHCP hostname in VPP APINeale Ranns1-0/+1
Change-Id: I74886c31f8ceba2561679513560cf5ae46757236 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-09VOM: Inspect: fix the bugMohsin Kazmi1-2/+1
If key is passed without ":", results in segmentation fault. This patch fixes this issue. Change-Id: I4e6bb3431c261cc2ac752b966a11edd7aa3304a0 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-09VOM: Makefile: Fix the execution time initialization orderMohsin Kazmi1-1/+1
When compile with gcc version 4.8.5, the compiler doesn't able to optimize the execution time initialization order. This patch fixes the initialization order. Change-Id: I14eacdf30f7ef481f72452adfc955400e37ae559 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-09VOM logger levels fixNeale Ranns1-4/+4
Change-Id: I0e627adb7846a33ee6e43f66cde648b4ae7f5cd4 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-08VOM rpm build fixesNeale Ranns1-1/+1
Change-Id: I1f76aabecfd7d33b924a4856a4c3fc683b9b8802 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-07Fix include header for cmdsMohsin Kazmi1-0/+2
Change-Id: I4dfdbf7f58af4f37141fa325edf8780b2dc4c8bb Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-06VOM reshuffleNeale Ranns105-3458/+4791
split the VOM into two halves; a top/front-end and a bottom/backend. Only the backend includes the auto-generated VAPI. This serves two purposes: 1 - improves ompile times for VOM, since the VAPI is included only in the backend. 2 - does not expose VAPI to users of VOM Change-Id: I17b93aeaef10c0eba8612016d9034aca5628d9f7 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-05Fix coverity warnings in VOM and VAPINeale Ranns1-2/+4
Change-Id: I0db55e079f9b1835668c8efe69e6e6f7f8437b00 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-01vom: fix build with gcc7Damjan Marion1-0/+1
Change-Id: I0b5806dd1d8cb45f40354cfe6cae7f4e76309f92 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-11-01VOM fixes for 9090 - ships in the night commitsNeale Ranns4-43/+10
Change-Id: I4b03a4f86a7e0e47874715398ca9f8ff0f5386ee Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-01VPP Object Model (VOM)Neale Ranns110-0/+21597
The VOM is a C++ library for use by clients/agents of VPP for programming state. It uses the binary APIs to do so. Various other common client side functions are also provided. Please see om.hpp for a more detailed description. Change-Id: Ib756bfe99817093815a9e26ccf464aa5583fc523 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Co-authored-by: Mohsin Kazmi <sykazmi@cisco.com>