Lines Matching full:app
167 * @app: Back pointer to app
172 struct nfp_app *app; member
208 void nfp_tunnel_keep_alive(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_keep_alive() argument
220 nfp_flower_cmsg_warn(app, "Tunnel keep-alive request exceeds max routes.\n"); in nfp_tunnel_keep_alive()
226 nfp_flower_cmsg_warn(app, "Corruption in tunnel keep-alive message.\n"); in nfp_tunnel_keep_alive()
234 netdev = nfp_app_dev_get(app, port, NULL); in nfp_tunnel_keep_alive()
249 void nfp_tunnel_keep_alive_v6(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_keep_alive_v6() argument
262 nfp_flower_cmsg_warn(app, "IPv6 tunnel keep-alive request exceeds max routes.\n"); in nfp_tunnel_keep_alive_v6()
268 nfp_flower_cmsg_warn(app, "Corruption in tunnel keep-alive message.\n"); in nfp_tunnel_keep_alive_v6()
276 netdev = nfp_app_dev_get(app, port, NULL); in nfp_tunnel_keep_alive_v6()
293 nfp_flower_xmit_tun_conf(struct nfp_app *app, u8 mtype, u16 plen, void *pdata, in nfp_flower_xmit_tun_conf() argument
296 struct nfp_flower_priv *priv = app->priv; in nfp_flower_xmit_tun_conf()
310 skb = nfp_flower_cmsg_alloc(app, plen, mtype, flag); in nfp_flower_xmit_tun_conf()
317 nfp_ctrl_tx(app->ctrl, skb); in nfp_flower_xmit_tun_conf()
360 nfp_tun_link_predt_entries(struct nfp_app *app, in nfp_tun_link_predt_entries() argument
363 struct nfp_flower_priv *priv = app->priv; in nfp_tun_link_predt_entries()
371 void nfp_tun_link_and_update_nn_entries(struct nfp_app *app, in nfp_tun_link_and_update_nn_entries() argument
374 struct nfp_flower_priv *priv = app->priv; in nfp_tun_link_and_update_nn_entries()
391 nfp_flower_xmit_tun_conf(app, type, neigh_size, in nfp_tun_link_and_update_nn_entries()
399 static void nfp_tun_cleanup_nn_entries(struct nfp_app *app) in nfp_tun_cleanup_nn_entries() argument
401 struct nfp_flower_priv *priv = app->priv; in nfp_tun_cleanup_nn_entries()
425 nfp_flower_xmit_tun_conf(app, type, neigh_size, neigh->payload, in nfp_tun_cleanup_nn_entries()
438 void nfp_tun_unlink_and_update_nn_entries(struct nfp_app *app, in nfp_tun_unlink_and_update_nn_entries() argument
460 nfp_flower_xmit_tun_conf(app, type, neigh_size, neigh->payload, in nfp_tun_unlink_and_update_nn_entries()
466 nfp_tun_write_neigh(struct net_device *netdev, struct nfp_app *app, in nfp_tun_write_neigh() argument
474 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_neigh()
480 port_id = nfp_flower_get_port_id_from_netdev(app, netdev); in nfp_tun_write_neigh()
486 nfp_flower_lag_get_info_from_netdev(app, netdev, &lag_info); in nfp_tun_write_neigh()
544 nfp_tun_link_predt_entries(app, nn_entry); in nfp_tun_write_neigh()
545 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
572 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
606 nfp_tun_link_predt_entries(app, nn_entry); in nfp_tun_write_neigh()
607 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
619 nfp_flower_cmsg_warn(app, "Neighbour configuration failed.\n"); in nfp_tun_write_neigh()
632 struct nfp_app *app; in nfp_tun_neigh_update() local
638 app = update_work->app; in nfp_tun_neigh_update()
641 if (!nfp_flower_get_port_id_from_netdev(app, n->dev)) in nfp_tun_neigh_update()
666 nfp_tun_write_neigh(n->dev, app, &flow6, n, true, false); in nfp_tun_neigh_update()
687 nfp_tun_write_neigh(n->dev, app, &flow4, n, false, false); in nfp_tun_neigh_update()
695 nfp_tun_alloc_neigh_update_work(struct nfp_app *app, struct neighbour *n) in nfp_tun_alloc_neigh_update_work() argument
706 update_work->app = app; in nfp_tun_alloc_neigh_update_work()
719 struct nfp_app *app; in nfp_tun_neigh_event_handler() local
740 app = app_priv->app; in nfp_tun_neigh_event_handler()
741 update_work = nfp_tun_alloc_neigh_update_work(app, n); in nfp_tun_neigh_event_handler()
750 void nfp_tunnel_request_route_v4(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_request_route_v4() argument
762 netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); in nfp_tunnel_request_route_v4()
787 nfp_tun_write_neigh(n->dev, app, &flow, n, false, true); in nfp_tunnel_request_route_v4()
795 nfp_flower_cmsg_warn(app, "Requested route not found.\n"); in nfp_tunnel_request_route_v4()
798 void nfp_tunnel_request_route_v6(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_request_route_v6() argument
809 netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); in nfp_tunnel_request_route_v6()
832 nfp_tun_write_neigh(n->dev, app, &flow, n, true, true); in nfp_tunnel_request_route_v6()
840 nfp_flower_cmsg_warn(app, "Requested IPv6 route not found.\n"); in nfp_tunnel_request_route_v6()
843 static void nfp_tun_write_ipv4_list(struct nfp_app *app) in nfp_tun_write_ipv4_list() argument
845 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_ipv4_list()
857 nfp_flower_cmsg_warn(app, "IPv4 offload exceeds limit.\n"); in nfp_tun_write_ipv4_list()
866 nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_IPS, in nfp_tun_write_ipv4_list()
871 void nfp_tunnel_add_ipv4_off(struct nfp_app *app, __be32 ipv4) in nfp_tunnel_add_ipv4_off() argument
873 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_ipv4_off()
890 nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); in nfp_tunnel_add_ipv4_off()
898 nfp_tun_write_ipv4_list(app); in nfp_tunnel_add_ipv4_off()
901 void nfp_tunnel_del_ipv4_off(struct nfp_app *app, __be32 ipv4) in nfp_tunnel_del_ipv4_off() argument
903 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_del_ipv4_off()
921 nfp_tun_write_ipv4_list(app); in nfp_tunnel_del_ipv4_off()
924 static void nfp_tun_write_ipv6_list(struct nfp_app *app) in nfp_tun_write_ipv6_list() argument
926 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_ipv6_list()
935 … nfp_flower_cmsg_warn(app, "Too many IPv6 tunnel endpoint addresses, some cannot be offloaded.\n"); in nfp_tun_write_ipv6_list()
943 nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_IPS_V6, in nfp_tun_write_ipv6_list()
949 nfp_tunnel_add_ipv6_off(struct nfp_app *app, struct in6_addr *ipv6) in nfp_tunnel_add_ipv6_off() argument
951 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_ipv6_off()
965 nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); in nfp_tunnel_add_ipv6_off()
973 nfp_tun_write_ipv6_list(app); in nfp_tunnel_add_ipv6_off()
979 nfp_tunnel_put_ipv6_off(struct nfp_app *app, struct nfp_ipv6_addr_entry *entry) in nfp_tunnel_put_ipv6_off() argument
981 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_put_ipv6_off()
993 nfp_tun_write_ipv6_list(app); in nfp_tunnel_put_ipv6_off()
997 __nfp_tunnel_offload_mac(struct nfp_app *app, const u8 *mac, u16 idx, bool del) in __nfp_tunnel_offload_mac() argument
1011 return nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_MAC, in __nfp_tunnel_offload_mac()
1046 nfp_tunnel_lookup_offloaded_macs(struct nfp_app *app, const u8 *mac) in nfp_tunnel_lookup_offloaded_macs() argument
1048 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_lookup_offloaded_macs()
1078 nfp_tunnel_add_shared_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_add_shared_mac() argument
1081 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_shared_mac()
1086 entry = nfp_tunnel_lookup_offloaded_macs(app, netdev->dev_addr); in nfp_tunnel_add_shared_mac()
1137 err = __nfp_tunnel_offload_mac(app, netdev->dev_addr, in nfp_tunnel_add_shared_mac()
1164 nfp_tunnel_del_shared_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_del_shared_mac() argument
1167 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_del_shared_mac()
1174 entry = nfp_tunnel_lookup_offloaded_macs(app, mac); in nfp_tunnel_del_shared_mac()
1191 if (__nfp_tunnel_offload_mac(app, mac, nfp_mac_idx, in nfp_tunnel_del_shared_mac()
1193 nfp_flower_cmsg_warn(app, "MAC offload index revert failed on %s.\n", in nfp_tunnel_del_shared_mac()
1213 err = __nfp_tunnel_offload_mac(app, mac, nfp_mac_idx, false); in nfp_tunnel_del_shared_mac()
1215 nfp_flower_cmsg_warn(app, "MAC offload index revert failed on %s.\n", in nfp_tunnel_del_shared_mac()
1246 return __nfp_tunnel_offload_mac(app, mac, 0, true); in nfp_tunnel_del_shared_mac()
1250 nfp_tunnel_offload_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_offload_mac() argument
1263 if (repr->app != app) in nfp_tunnel_offload_mac()
1276 nr_priv = nfp_flower_non_repr_priv_get(app, netdev); in nfp_tunnel_offload_mac()
1297 err = nfp_tunnel_add_shared_mac(app, netdev, port, false); in nfp_tunnel_offload_mac()
1317 err = nfp_tunnel_del_shared_mac(app, netdev, netdev->dev_addr, in nfp_tunnel_offload_mac()
1328 err = nfp_tunnel_add_shared_mac(app, netdev, port, true); in nfp_tunnel_offload_mac()
1333 err = nfp_tunnel_del_shared_mac(app, netdev, off_mac, true); in nfp_tunnel_offload_mac()
1335 nfp_flower_cmsg_warn(app, "Failed to remove offload of replaced MAC addr on %s.\n", in nfp_tunnel_offload_mac()
1357 int nfp_tunnel_mac_event_handler(struct nfp_app *app, in nfp_tunnel_mac_event_handler() argument
1364 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1367 nfp_flower_cmsg_warn(app, "Failed to delete offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1370 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1373 nfp_flower_cmsg_warn(app, "Failed to offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1380 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1383 nfp_flower_cmsg_warn(app, "Failed to offload MAC change on %s.\n", in nfp_tunnel_mac_event_handler()
1402 if (repr->app != app) in nfp_tunnel_mac_event_handler()
1408 if (nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1410 nfp_flower_cmsg_warn(app, "Failed to delete offloaded MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1419 if (nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1421 nfp_flower_cmsg_warn(app, "Failed to offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1428 int nfp_flower_xmit_pre_tun_flow(struct nfp_app *app, in nfp_flower_xmit_pre_tun_flow() argument
1431 struct nfp_flower_priv *app_priv = app->priv; in nfp_flower_xmit_pre_tun_flow()
1451 mac_entry = nfp_tunnel_lookup_offloaded_macs(app, in nfp_flower_xmit_pre_tun_flow()
1471 err = nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_PRE_TUN_RULE, in nfp_flower_xmit_pre_tun_flow()
1482 int nfp_flower_xmit_pre_tun_del_flow(struct nfp_app *app, in nfp_flower_xmit_pre_tun_del_flow() argument
1485 struct nfp_flower_priv *app_priv = app->priv; in nfp_flower_xmit_pre_tun_del_flow()
1497 err = nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_PRE_TUN_RULE, in nfp_flower_xmit_pre_tun_del_flow()
1508 int nfp_tunnel_config_start(struct nfp_app *app) in nfp_tunnel_config_start() argument
1510 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_config_start()
1540 void nfp_tunnel_config_stop(struct nfp_app *app) in nfp_tunnel_config_stop() argument
1542 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_config_stop()
1563 nfp_tun_cleanup_nn_entries(app); in nfp_tunnel_config_stop()