Lines Matching refs:encap

127 	/* Flow can be associated with multiple encap entries.
196 /* update from slow path rule to encap rule */
231 /* mark the flow's encap dest as non-valid */
242 /* update from encap rule to slow path rule */
248 mlx5_core_warn(priv->mdev, "Failed to update slow path (encap) flow, %d\n",
260 /* we know that the encap is valid */
272 * unoffloaded from hardware, otherwise deleting encap will
284 /* Takes reference to all flows attached to encap and adds the flows to
322 /* find encap with non-zero reference counter value */
341 /* release starting encap */
347 /* wait for encap to be fully initialized */
349 /* continue searching if encap entry is not in valid state after completion */
402 /* mlx5e_get_next_valid_encap() releases previous encap before returning
433 /* release current encap before breaking the loop */
702 NL_SET_ERR_MSG_MOD(extack, "can't duplicate encap action");
703 netdev_err(priv->netdev, "can't duplicate encap action\n");
792 struct mlx5e_tc_tun_encap *encap;
797 encap = uplink_priv->encap;
799 spin_lock_bh(&encap->route_lock);
800 ret = encap->route_tbl_last_update;
801 spin_unlock_bh(&encap->route_lock);
850 /* must verify if encap is valid or not */
910 mlx5_core_dbg(priv->mdev, "attaching int port as encap dev not supported, using uplink\n");
954 "encap header larger than max supported");
1073 NL_SET_ERR_MSG_MOD(extack, "VF tunnel encap with mirroring is not supported");
1158 mlx5e_route_get(struct mlx5e_tc_tun_encap *encap, struct mlx5e_route_key *key,
1164 hash_for_each_possible(encap->route_tbl, r, hlist, hash_key) {
1182 struct mlx5e_tc_tun_encap *encap;
1188 encap = uplink_priv->encap;
1191 spin_lock_bh(&encap->route_lock);
1192 r = mlx5e_route_get(encap, key, hash_key);
1193 spin_unlock_bh(&encap->route_lock);
1213 spin_lock_bh(&encap->route_lock);
1214 *route_tbl_change_time = encap->route_tbl_last_update;
1215 hash_add(encap->route_tbl, &r->hlist, hash_key);
1216 spin_unlock_bh(&encap->route_lock);
1222 mlx5e_route_lookup_for_update(struct mlx5e_tc_tun_encap *encap, struct mlx5e_route_key *key)
1227 spin_lock_bh(&encap->route_lock);
1228 encap->route_tbl_last_update = jiffies;
1229 r = mlx5e_route_get(encap, key, hash_key);
1230 spin_unlock_bh(&encap->route_lock);
1502 mlx5_core_warn(priv->mdev, "Failed to update encap header, %d", err);
1549 /* update from slow path rule to encap rule */
1562 /* mark the flow's encap dest as non-valid */
1568 mlx5_core_warn(priv->mdev, "Failed to update slow path (encap) flow, %d\n",
1729 struct mlx5e_tc_tun_encap *encap,
1758 r = mlx5e_route_lookup_for_update(encap, &key);
1774 struct mlx5e_tc_tun_encap *encap,
1802 r = mlx5e_route_lookup_for_update(encap, &key);
1819 struct mlx5e_tc_tun_encap *encap;
1823 encap = container_of(nb, struct mlx5e_tc_tun_encap, fib_nb);
1824 priv = encap->priv;
1832 fib_work = mlx5e_init_fib_work_ipv4(priv, ul_dev, encap, event, info);
1834 fib_work = mlx5e_init_fib_work_ipv6(priv, ul_dev, encap, event, info);
1856 struct mlx5e_tc_tun_encap *encap;
1859 encap = kvzalloc(sizeof(*encap), GFP_KERNEL);
1860 if (!encap)
1863 encap->priv = priv;
1864 encap->fib_nb.notifier_call = mlx5e_tc_tun_fib_event;
1865 spin_lock_init(&encap->route_lock);
1866 hash_init(encap->route_tbl);
1867 err = register_fib_notifier(dev_net(priv->netdev), &encap->fib_nb,
1870 kvfree(encap);
1874 return encap;
1877 void mlx5e_tc_tun_cleanup(struct mlx5e_tc_tun_encap *encap)
1879 if (!encap)
1882 unregister_fib_notifier(dev_net(encap->priv->netdev), &encap->fib_nb);
1883 flush_workqueue(encap->priv->wq); /* flush fib event works */
1884 kvfree(encap);