|
@@ -2761,7 +2761,7 @@ static int ofdpa_fib4_add(struct rocker *rocker,
|
|
fen_info->tb_id, 0);
|
|
fen_info->tb_id, 0);
|
|
if (err)
|
|
if (err)
|
|
return err;
|
|
return err;
|
|
- fib_info_offload_inc(fen_info->fi);
|
|
|
|
|
|
+ fen_info->fi->fib_nh->nh_flags |= RTNH_F_OFFLOAD;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2776,7 +2776,7 @@ static int ofdpa_fib4_del(struct rocker *rocker,
|
|
ofdpa_port = ofdpa_port_dev_lower_find(fen_info->fi->fib_dev, rocker);
|
|
ofdpa_port = ofdpa_port_dev_lower_find(fen_info->fi->fib_dev, rocker);
|
|
if (!ofdpa_port)
|
|
if (!ofdpa_port)
|
|
return 0;
|
|
return 0;
|
|
- fib_info_offload_dec(fen_info->fi);
|
|
|
|
|
|
+ fen_info->fi->fib_nh->nh_flags &= ~RTNH_F_OFFLOAD;
|
|
return ofdpa_port_fib_ipv4(ofdpa_port, htonl(fen_info->dst),
|
|
return ofdpa_port_fib_ipv4(ofdpa_port, htonl(fen_info->dst),
|
|
fen_info->dst_len, fen_info->fi,
|
|
fen_info->dst_len, fen_info->fi,
|
|
fen_info->tb_id, OFDPA_OP_FLAG_REMOVE);
|
|
fen_info->tb_id, OFDPA_OP_FLAG_REMOVE);
|
|
@@ -2803,7 +2803,7 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
|
|
rocker);
|
|
rocker);
|
|
if (!ofdpa_port)
|
|
if (!ofdpa_port)
|
|
continue;
|
|
continue;
|
|
- fib_info_offload_dec(flow_entry->fi);
|
|
|
|
|
|
+ flow_entry->fi->fib_nh->nh_flags &= ~RTNH_F_OFFLOAD;
|
|
ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
|
|
ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
|
|
flow_entry);
|
|
flow_entry);
|
|
}
|
|
}
|