mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 22:54:01 +00:00
openvswitch: Print error when ovs_execute_actions() fails
Currently in function ovs_dp_process_packet(), return values of ovs_execute_actions() are silently discarded. This patch prints out an debug message when error happens so as to provide helpful hints for debugging. Acked-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ef68de56c7
commit
aa733660db
1 changed files with 5 additions and 2 deletions
|
@ -222,6 +222,7 @@ void ovs_dp_process_packet(struct sk_buff *skb, struct sw_flow_key *key)
|
||||||
struct dp_stats_percpu *stats;
|
struct dp_stats_percpu *stats;
|
||||||
u64 *stats_counter;
|
u64 *stats_counter;
|
||||||
u32 n_mask_hit;
|
u32 n_mask_hit;
|
||||||
|
int error;
|
||||||
|
|
||||||
stats = this_cpu_ptr(dp->stats_percpu);
|
stats = this_cpu_ptr(dp->stats_percpu);
|
||||||
|
|
||||||
|
@ -229,7 +230,6 @@ void ovs_dp_process_packet(struct sk_buff *skb, struct sw_flow_key *key)
|
||||||
flow = ovs_flow_tbl_lookup_stats(&dp->table, key, &n_mask_hit);
|
flow = ovs_flow_tbl_lookup_stats(&dp->table, key, &n_mask_hit);
|
||||||
if (unlikely(!flow)) {
|
if (unlikely(!flow)) {
|
||||||
struct dp_upcall_info upcall;
|
struct dp_upcall_info upcall;
|
||||||
int error;
|
|
||||||
|
|
||||||
memset(&upcall, 0, sizeof(upcall));
|
memset(&upcall, 0, sizeof(upcall));
|
||||||
upcall.cmd = OVS_PACKET_CMD_MISS;
|
upcall.cmd = OVS_PACKET_CMD_MISS;
|
||||||
|
@ -246,7 +246,10 @@ void ovs_dp_process_packet(struct sk_buff *skb, struct sw_flow_key *key)
|
||||||
|
|
||||||
ovs_flow_stats_update(flow, key->tp.flags, skb);
|
ovs_flow_stats_update(flow, key->tp.flags, skb);
|
||||||
sf_acts = rcu_dereference(flow->sf_acts);
|
sf_acts = rcu_dereference(flow->sf_acts);
|
||||||
ovs_execute_actions(dp, skb, sf_acts, key);
|
error = ovs_execute_actions(dp, skb, sf_acts, key);
|
||||||
|
if (unlikely(error))
|
||||||
|
net_dbg_ratelimited("ovs: action execution error on datapath %s: %d\n",
|
||||||
|
ovs_dp_name(dp), error);
|
||||||
|
|
||||||
stats_counter = &stats->n_hit;
|
stats_counter = &stats->n_hit;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue