Compare commits

...

17 Commits

Author SHA1 Message Date
Ed Warnicke
db6d6b3058 Update Release Notes for 18.07 Release
Change-Id: I2b58bca6d360badb4fd17022121e244aee5713b8
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
2018-07-30 14:29:08 -05:00
Rajesh Saluja
17ee6f08d4 Reverse the logic of flagging malformed packet in fragmentation code to allow padding
Change-Id: I051c137ae18fd436a798a12a56a9d12f8eaa2e08
Signed-off-by: Rajesh Saluja <rajsaluj@cisco.com>
(cherry picked from commit 1f895c9a40f446ca9f1b7803f350c70ebb3ad0fa)
2018-07-30 11:24:54 +00:00
Juraj Sloboda
3c723f3812 Fix memory leak in processing of ICMPv6 RA event (VPP-1360)
Change-Id: I7c3e5e91391b1c9b36e8ea8bacee9a107da1ae96
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2018-07-27 11:33:34 +02:00
Lukasz Majczak
c1ebcc4022 VPP-1359 Wrong vl_msg_id
Wrong vl_msg_id set in vl_api_stats_get_poller_delay_t_handler while reporting stats delay.

Change-Id: I7d6ad14359e41c717b976390c58e254e3602e0ff
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
2018-07-26 14:15:56 +00:00
Jakub Grajciar
258a189d18 avf: api fix
avf_create_reply returns software index for the new interface

Change-Id: I8a6b1a1985b072efafa24eb258b1f2cb1bea1110
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
(cherry picked from commit 4e6014fc9e8611eef16d9267151f1039ff00c190)
2018-07-26 08:37:15 +00:00
Eyal Bari
456ded496f fix vector index range checks (VPP-1353)
Change-Id: I63c36644c9d93f2c3ec6606ca0205b407499de4e
Signed-off-by: Eyal Bari <ebari@cisco.com>
(cherry picked from commit cd30774fa9280736ffaea3e9a51948593e8eebc2)
Signed-off-by: John Lo <loj@cisco.com>
2018-07-24 15:15:25 +00:00
Matus Fabian
c16a23c596 NAT44: fix forwarding feature bug (VPP-1349)
Change-Id: I5009fcfde5c627d59dea3edda15486b9392134a2
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-07-23 19:39:02 +00:00
Neale Ranns
6f9bc4e4d8 QOS: mark/record fix feature ordering c-n-p error
vnet_feature_arc_init:215: feature node 'mpls-qos-mark' not found (after 'vlan-mpls-qos-record', arc 'mpls-input')
vnet_feature_arc_init:215: feature node 'ip6-qos-mark' not found (after 'vlan-ip6-qos-record', arc 'ip6-multicast')
...etc...

Change-Id: I22cb98d57e2480f5978fff315b77b9cbb6a9f9dd
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
(cherry picked from commit 8d753f906ecdd152af1e524919e99bd9ab45de46)
2018-07-23 10:28:43 +00:00
Neale Ranns
9df8ffa0dc QoS: marking and recording for MPLS and VLAN
Change-Id: Icec79aa9039d5d7835d311fde0b7c1a0c76c9eb1
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit 0809f6c0300f85cf5cf5d49df1aa8f1e2d080f6c)
2018-07-23 08:34:24 +00:00
Dave Barach
ca23c3ea16 Loopback tx: support multiple tx intfcs per frame
Can happen if code bypasses the per-interface output node, and
dispatches packets directly to the tx node.

Switch to vlib_get_buffers(...) ... vlib_buffer_enqueue_to_next (...),
quad/single loop coding pattern.

Change-Id: Ic0e5d3b9748230f4e545a54186e6e64e7a782bb1
Signed-off-by: Dave Barach <dave@barachs.net>
(cherry picked from commit 78451a6a660cd26a67d2284219f48878a2dfe2c3)
2018-07-22 00:53:04 +00:00
Neale Ranns
2ed681f5b0 ip4-input and ip4-input-no-checksum should be siblings
each edge/arc from these nodes must be the same.

Change-Id: Id5dace61bca0af71ad1df98583425226e81fd0de
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
(cherry picked from commit 8a03e4f97952d84e152f5b17d5325583604c4fd3)
2018-07-19 15:50:28 +00:00
Mohsin Kazmi
d61105656b gbp: Add support for ACL
Change-Id: I7513c41307e62068ab5d9739cac393675c6066f8
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
(cherry picked from commit 22b3b846822df2701bb6cb508fa4e023526e5717)
2018-07-19 07:51:39 +00:00
Eyal Bari
692250bedf qos mark/record: fix disable-sw_if_index range check
Change-Id: I2abb3ceebae3a32cee9aa2a999bd47c37719d3ac
Signed-off-by: Eyal Bari <ebari@cisco.com>
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
(cherry picked from commit 07f3586c5a9868ccee381af528de39b373d7720a)
2018-07-18 21:17:58 +00:00
Eyal Bari
e4b49c738b loopback:fix delete to check interface class
Change-Id: Ia563b279e85b5da93f79db5a2a4d9b8c04f5be99
Signed-off-by: Eyal Bari <ebari@cisco.com>
(cherry picked from commit b52c034c7d53014e9d5c1dfc3501e9adfb0c6391)
2018-07-18 04:50:38 +00:00
Neale Ranns
ee8b973de9 VOM: support for pipes
Change-Id: I5c381dfe2f926f94a34ee8ed8f1b9ec6038d5fe2
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
(cherry picked from commit 208c29aac523231af2420a95ba7e5d361698780b)
2018-07-18 04:48:34 +00:00
Hongjun Ni
b4b2488202 VPP crash when run "lb set interface nat4 in <intc>" VPP-1343
Change-Id: I23be9c29227e7dd1bb11b5b7fa910bb61c2be6c9
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2018-07-18 00:17:44 +08:00
Ed Warnicke
e400a6d1a5 Update .gitreview for stable/1807
Change-Id: I6e405e9d729990bb57aaaa4aab01a1d4f54f4ee4
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
2018-07-16 12:11:28 -05:00
122 changed files with 2293 additions and 644 deletions

View File

@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/1807

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
#!/usr/bin/env python
import os, fnmatch, subprocess
starttag = 'v18.04-rc0'
endtag = 'v18.04-rc2'
starttag = 'v18.07-rc0'
endtag = 'v18.07'
emit_md = True
apifiles = []

View File

@ -127,6 +127,8 @@ libvom_la_SOURCES = \
neighbour_cmds.cpp \
object_base.cpp \
om.cpp \
pipe.cpp \
pipe_cmds.cpp \
prefix.cpp \
ra_config.cpp \
ra_prefix.cpp \
@ -214,6 +216,7 @@ vominclude_HEADERS = \
neighbour.hpp \
object_base.hpp \
om.hpp \
pipe.hpp \
prefix.hpp \
ra_config.hpp \
ra_prefix.hpp \

View File

@ -34,9 +34,7 @@ l3_bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
template <>
@ -64,9 +62,7 @@ l3_unbind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
template <>
@ -116,9 +112,7 @@ l2_bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
template <>
@ -145,9 +139,7 @@ l2_unbind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
template <>

View File

@ -29,7 +29,7 @@ namespace binding_cmds {
* A command class that binds the ACL to the interface
*/
template <typename BIND>
class bind_cmd : public rpc_cmd<HW::item<bool>, rc_t, BIND>
class bind_cmd : public rpc_cmd<HW::item<bool>, BIND>
{
public:
/**
@ -39,7 +39,7 @@ public:
const direction_t& direction,
const handle_t& itf,
const handle_t& acl)
: rpc_cmd<HW::item<bool>, rc_t, BIND>(item)
: rpc_cmd<HW::item<bool>, BIND>(item)
, m_direction(direction)
, m_itf(itf)
, m_acl(acl)
@ -85,7 +85,7 @@ private:
* A command class that binds the ACL to the interface
*/
template <typename BIND>
class unbind_cmd : public rpc_cmd<HW::item<bool>, rc_t, BIND>
class unbind_cmd : public rpc_cmd<HW::item<bool>, BIND>
{
public:
/**
@ -95,7 +95,7 @@ public:
const direction_t& direction,
const handle_t& itf,
const handle_t& acl)
: rpc_cmd<HW::item<bool>, rc_t, BIND>(item)
: rpc_cmd<HW::item<bool>, BIND>(item)
, m_direction(direction)
, m_itf(itf)
, m_acl(acl)

View File

@ -58,9 +58,7 @@ bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -28,9 +28,8 @@ namespace acl_ethertype_cmds {
/**
* A command class that binds the ethertype list to the interface
*/
class bind_cmd : public rpc_cmd<HW::item<bool>,
rc_t,
vapi::Acl_interface_set_etype_whitelist>
class bind_cmd
: public rpc_cmd<HW::item<bool>, vapi::Acl_interface_set_etype_whitelist>
{
public:
/**
@ -69,9 +68,8 @@ private:
/**
* A command class that unbinds the ethertype list to the interface
*/
class unbind_cmd : public rpc_cmd<HW::item<bool>,
rc_t,
vapi::Acl_interface_set_etype_whitelist>
class unbind_cmd
: public rpc_cmd<HW::item<bool>, vapi::Acl_interface_set_etype_whitelist>
{
public:
/**

View File

@ -74,7 +74,8 @@ l3_update_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item = wait();
wait();
if (m_hw_item.rc() == rc_t::OK)
insert_acl();
@ -140,7 +141,8 @@ l2_update_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item = wait();
wait();
if (m_hw_item.rc() == rc_t::OK)
insert_acl();

View File

@ -29,8 +29,7 @@ namespace list_cmds {
* A command class that Create the list
*/
template <typename RULE, typename UPDATE>
class update_cmd
: public rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, UPDATE>
class update_cmd : public rpc_cmd<HW::item<handle_t>, UPDATE>
{
public:
typedef typename list<RULE>::rules_t cmd_rules_t;
@ -42,7 +41,7 @@ public:
update_cmd(HW::item<handle_t>& item,
const cmd_key_t& key,
const cmd_rules_t& rules)
: rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, UPDATE>(item)
: rpc_cmd<HW::item<handle_t>, UPDATE>(item)
, m_key(key)
, m_rules(rules)
{
@ -78,7 +77,7 @@ public:
void succeeded()
{
rpc_cmd<HW::item<handle_t>, HW::item<handle_t>, UPDATE>::succeeded();
rpc_cmd<HW::item<handle_t>, UPDATE>::succeeded();
list<RULE>::add(m_key, this->item());
}
@ -124,14 +123,14 @@ private:
* A cmd class that Deletes an ACL
*/
template <typename RULE, typename DELETE>
class delete_cmd : public rpc_cmd<HW::item<handle_t>, rc_t, DELETE>
class delete_cmd : public rpc_cmd<HW::item<handle_t>, DELETE>
{
public:
/**
* Constructor
*/
delete_cmd(HW::item<handle_t>& item)
: rpc_cmd<HW::item<handle_t>, rc_t, DELETE>(item)
: rpc_cmd<HW::item<handle_t>, DELETE>(item)
{
}

View File

@ -41,9 +41,7 @@ bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -27,7 +27,7 @@ namespace arp_proxy_binding_cmds {
* A command class that binds the LLDP config to the interface
*/
class bind_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Proxy_arp_intfc_enable_disable>
: public rpc_cmd<HW::item<bool>, vapi::Proxy_arp_intfc_enable_disable>
{
public:
/**
@ -60,7 +60,7 @@ private:
* A cmd class that Unbinds ArpProxy Config from an interface
*/
class unbind_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Proxy_arp_intfc_enable_disable>
: public rpc_cmd<HW::item<bool>, vapi::Proxy_arp_intfc_enable_disable>
{
public:
/**

View File

@ -48,7 +48,7 @@ config_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
wait();
return (rc_t::OK);
}

View File

@ -27,7 +27,7 @@ namespace arp_proxy_config_cmds {
/**
* A command class that adds the ARP Proxy config
*/
class config_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Proxy_arp_add_del>
class config_cmd : public rpc_cmd<HW::item<bool>, vapi::Proxy_arp_add_del>
{
public:
/**
@ -62,8 +62,7 @@ private:
/**
* A cmd class that Unconfigs ArpProxy Config from an interface
*/
class unconfig_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Proxy_arp_add_del>
class unconfig_cmd : public rpc_cmd<HW::item<bool>, vapi::Proxy_arp_add_del>
{
public:
/**

View File

@ -161,7 +161,7 @@ bond_group_binding::event_handler::order() const
* We want enslaved interfaces bind to bond after interface
* but before anything else.
*/
return (dependency_t::BOND_BINDING);
return (dependency_t::VIRTUAL_INTERFACE);
}
void

View File

@ -45,9 +45,7 @@ bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -26,7 +26,7 @@ namespace bond_group_binding_cmds {
/**
* A command class that binds the slave interface to the bond interface
*/
class bind_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Bond_enslave>
class bind_cmd : public rpc_cmd<HW::item<bool>, vapi::Bond_enslave>
{
public:
/**
@ -65,7 +65,7 @@ private:
/**
* A cmd class that detach slave from a bond interface
*/
class unbind_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Bond_detach_slave>
class unbind_cmd : public rpc_cmd<HW::item<bool>, vapi::Bond_detach_slave>
{
public:
/**

View File

@ -51,7 +51,8 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item = wait();
wait();
if (m_hw_item.rc() == rc_t::OK) {
insert_interface();
}

View File

@ -49,9 +49,7 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -27,7 +27,7 @@ namespace bridge_domain_arp_entry_cmds {
/**
* A command class that creates or updates the bridge domain ARP Entry
*/
class create_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Bd_ip_mac_add_del>
class create_cmd : public rpc_cmd<HW::item<bool>, vapi::Bd_ip_mac_add_del>
{
public:
/**
@ -62,7 +62,7 @@ private:
/**
* A cmd class that deletes a bridge domain ARP entry
*/
class delete_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Bd_ip_mac_add_del>
class delete_cmd : public rpc_cmd<HW::item<bool>, vapi::Bd_ip_mac_add_del>
{
public:
/**

View File

@ -55,9 +55,7 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return (rc_t::OK);
return (wait());
}
std::string

View File

@ -28,7 +28,7 @@ namespace bridge_domain_cmds {
* A command class that creates an Bridge-Domain
*/
class create_cmd
: public rpc_cmd<HW::item<uint32_t>, rc_t, vapi::Bridge_domain_add_del>
: public rpc_cmd<HW::item<uint32_t>, vapi::Bridge_domain_add_del>
{
public:
/**
@ -77,7 +77,7 @@ private:
* A cmd class that Delete an Bridge-Domain
*/
class delete_cmd
: public rpc_cmd<HW::item<uint32_t>, rc_t, vapi::Bridge_domain_add_del>
: public rpc_cmd<HW::item<uint32_t>, vapi::Bridge_domain_add_del>
{
public:
/**

View File

@ -51,9 +51,7 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -28,7 +28,7 @@ namespace bridge_domain_entry_cmds {
/**
* A command class that creates or updates the bridge_domain
*/
class create_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::L2fib_add_del>
class create_cmd : public rpc_cmd<HW::item<bool>, vapi::L2fib_add_del>
{
public:
/**
@ -65,7 +65,7 @@ private:
/**
* A cmd class that deletes a bridge_domain
*/
class delete_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::L2fib_add_del>
class delete_cmd : public rpc_cmd<HW::item<bool>, vapi::L2fib_add_del>
{
public:
/**

View File

@ -63,9 +63,7 @@ bind_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -29,7 +29,7 @@ namespace dhcp_client_cmds {
/**
* A command class that binds the DHCP config to the interface
*/
class bind_cmd : public rpc_cmd<HW::item<bool>, rc_t, vapi::Dhcp_client_config>
class bind_cmd : public rpc_cmd<HW::item<bool>, vapi::Dhcp_client_config>
{
public:
/**
@ -80,8 +80,7 @@ private:
/**
* A cmd class that Unbinds Dhcp Config from an interface
*/
class unbind_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Dhcp_client_config>
class unbind_cmd : public rpc_cmd<HW::item<bool>, vapi::Dhcp_client_config>
{
public:
/**

View File

@ -36,14 +36,14 @@ namespace VOM {
* The client can then 'pop' these events from this command object.
*/
template <typename WANT, typename EVENT>
class event_cmd : public rpc_cmd<HW::item<bool>, rc_t, WANT>
class event_cmd : public rpc_cmd<HW::item<bool>, WANT>
{
public:
/**
* Default constructor
*/
event_cmd(HW::item<bool>& b)
: rpc_cmd<HW::item<bool>, rc_t, WANT>(b)
: rpc_cmd<HW::item<bool>, WANT>(b)
{
}

View File

@ -49,9 +49,7 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string
@ -94,9 +92,7 @@ delete_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

View File

@ -27,8 +27,7 @@ namespace gbp_contract_cmds {
/**
* A command class that creates or updates the GBP contract
*/
class create_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Gbp_contract_add_del>
class create_cmd : public rpc_cmd<HW::item<bool>, vapi::Gbp_contract_add_del>
{
public:
/**
@ -63,8 +62,7 @@ private:
/**
* A cmd class that deletes a GBP contract
*/
class delete_cmd
: public rpc_cmd<HW::item<bool>, rc_t, vapi::Gbp_contract_add_del>
class delete_cmd : public rpc_cmd<HW::item<bool>, vapi::Gbp_contract_add_del>
{
public:
/**

View File

@ -54,9 +54,7 @@ create_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string
@ -97,9 +95,7 @@ delete_cmd::issue(connection& con)
VAPI_CALL(req.execute());
m_hw_item.set(wait());
return rc_t::OK;
return (wait());
}
std::string

Some files were not shown because too many files have changed in this diff Show More