Lines Matching full:app
196 void nfp_tunnel_keep_alive(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_keep_alive() argument
208 nfp_flower_cmsg_warn(app, "Tunnel keep-alive request exceeds max routes.\n"); in nfp_tunnel_keep_alive()
214 nfp_flower_cmsg_warn(app, "Corruption in tunnel keep-alive message.\n"); in nfp_tunnel_keep_alive()
222 netdev = nfp_app_dev_get(app, port, NULL); in nfp_tunnel_keep_alive()
237 void nfp_tunnel_keep_alive_v6(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_keep_alive_v6() argument
250 nfp_flower_cmsg_warn(app, "IPv6 tunnel keep-alive request exceeds max routes.\n"); in nfp_tunnel_keep_alive_v6()
256 nfp_flower_cmsg_warn(app, "Corruption in tunnel keep-alive message.\n"); in nfp_tunnel_keep_alive_v6()
264 netdev = nfp_app_dev_get(app, port, NULL); in nfp_tunnel_keep_alive_v6()
281 nfp_flower_xmit_tun_conf(struct nfp_app *app, u8 mtype, u16 plen, void *pdata, in nfp_flower_xmit_tun_conf() argument
284 struct nfp_flower_priv *priv = app->priv; in nfp_flower_xmit_tun_conf()
293 skb = nfp_flower_cmsg_alloc(app, plen, mtype, flag); in nfp_flower_xmit_tun_conf()
300 nfp_ctrl_tx(app->ctrl, skb); in nfp_flower_xmit_tun_conf()
343 nfp_tun_link_predt_entries(struct nfp_app *app, in nfp_tun_link_predt_entries() argument
346 struct nfp_flower_priv *priv = app->priv; in nfp_tun_link_predt_entries()
354 void nfp_tun_link_and_update_nn_entries(struct nfp_app *app, in nfp_tun_link_and_update_nn_entries() argument
357 struct nfp_flower_priv *priv = app->priv; in nfp_tun_link_and_update_nn_entries()
374 nfp_flower_xmit_tun_conf(app, type, neigh_size, in nfp_tun_link_and_update_nn_entries()
382 static void nfp_tun_cleanup_nn_entries(struct nfp_app *app) in nfp_tun_cleanup_nn_entries() argument
384 struct nfp_flower_priv *priv = app->priv; in nfp_tun_cleanup_nn_entries()
408 nfp_flower_xmit_tun_conf(app, type, neigh_size, neigh->payload, in nfp_tun_cleanup_nn_entries()
421 void nfp_tun_unlink_and_update_nn_entries(struct nfp_app *app, in nfp_tun_unlink_and_update_nn_entries() argument
443 nfp_flower_xmit_tun_conf(app, type, neigh_size, neigh->payload, in nfp_tun_unlink_and_update_nn_entries()
449 nfp_tun_write_neigh(struct net_device *netdev, struct nfp_app *app, in nfp_tun_write_neigh() argument
457 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_neigh()
462 port_id = nfp_flower_get_port_id_from_netdev(app, netdev); in nfp_tun_write_neigh()
515 nfp_tun_link_predt_entries(app, nn_entry); in nfp_tun_write_neigh()
516 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
543 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
553 nfp_tun_link_predt_entries(app, nn_entry); in nfp_tun_write_neigh()
554 nfp_flower_xmit_tun_conf(app, mtype, neigh_size, in nfp_tun_write_neigh()
565 nfp_flower_cmsg_warn(app, "Neighbour configuration failed.\n"); in nfp_tun_write_neigh()
575 struct nfp_app *app; in nfp_tun_neigh_event_handler() local
594 app = app_priv->app; in nfp_tun_neigh_event_handler()
597 !nfp_flower_internal_port_can_offload(app, n->dev)) in nfp_tun_neigh_event_handler()
621 nfp_tun_write_neigh(n->dev, app, &flow6, n, true, false); in nfp_tun_neigh_event_handler()
644 nfp_tun_write_neigh(n->dev, app, &flow4, n, false, false); in nfp_tun_neigh_event_handler()
653 void nfp_tunnel_request_route_v4(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_request_route_v4() argument
665 netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); in nfp_tunnel_request_route_v4()
687 nfp_tun_write_neigh(n->dev, app, &flow, n, false, true); in nfp_tunnel_request_route_v4()
694 nfp_flower_cmsg_warn(app, "Requested route not found.\n"); in nfp_tunnel_request_route_v4()
697 void nfp_tunnel_request_route_v6(struct nfp_app *app, struct sk_buff *skb) in nfp_tunnel_request_route_v6() argument
708 netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); in nfp_tunnel_request_route_v6()
729 nfp_tun_write_neigh(n->dev, app, &flow, n, true, true); in nfp_tunnel_request_route_v6()
736 nfp_flower_cmsg_warn(app, "Requested IPv6 route not found.\n"); in nfp_tunnel_request_route_v6()
739 static void nfp_tun_write_ipv4_list(struct nfp_app *app) in nfp_tun_write_ipv4_list() argument
741 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_ipv4_list()
753 nfp_flower_cmsg_warn(app, "IPv4 offload exceeds limit.\n"); in nfp_tun_write_ipv4_list()
762 nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_IPS, in nfp_tun_write_ipv4_list()
767 void nfp_tunnel_add_ipv4_off(struct nfp_app *app, __be32 ipv4) in nfp_tunnel_add_ipv4_off() argument
769 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_ipv4_off()
786 nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); in nfp_tunnel_add_ipv4_off()
794 nfp_tun_write_ipv4_list(app); in nfp_tunnel_add_ipv4_off()
797 void nfp_tunnel_del_ipv4_off(struct nfp_app *app, __be32 ipv4) in nfp_tunnel_del_ipv4_off() argument
799 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_del_ipv4_off()
817 nfp_tun_write_ipv4_list(app); in nfp_tunnel_del_ipv4_off()
820 static void nfp_tun_write_ipv6_list(struct nfp_app *app) in nfp_tun_write_ipv6_list() argument
822 struct nfp_flower_priv *priv = app->priv; in nfp_tun_write_ipv6_list()
831 … nfp_flower_cmsg_warn(app, "Too many IPv6 tunnel endpoint addresses, some cannot be offloaded.\n"); in nfp_tun_write_ipv6_list()
839 nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_IPS_V6, in nfp_tun_write_ipv6_list()
845 nfp_tunnel_add_ipv6_off(struct nfp_app *app, struct in6_addr *ipv6) in nfp_tunnel_add_ipv6_off() argument
847 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_ipv6_off()
861 nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); in nfp_tunnel_add_ipv6_off()
869 nfp_tun_write_ipv6_list(app); in nfp_tunnel_add_ipv6_off()
875 nfp_tunnel_put_ipv6_off(struct nfp_app *app, struct nfp_ipv6_addr_entry *entry) in nfp_tunnel_put_ipv6_off() argument
877 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_put_ipv6_off()
889 nfp_tun_write_ipv6_list(app); in nfp_tunnel_put_ipv6_off()
893 __nfp_tunnel_offload_mac(struct nfp_app *app, const u8 *mac, u16 idx, bool del) in __nfp_tunnel_offload_mac() argument
907 return nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_TUN_MAC, in __nfp_tunnel_offload_mac()
942 nfp_tunnel_lookup_offloaded_macs(struct nfp_app *app, const u8 *mac) in nfp_tunnel_lookup_offloaded_macs() argument
944 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_lookup_offloaded_macs()
974 nfp_tunnel_add_shared_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_add_shared_mac() argument
977 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_add_shared_mac()
982 entry = nfp_tunnel_lookup_offloaded_macs(app, netdev->dev_addr); in nfp_tunnel_add_shared_mac()
1033 err = __nfp_tunnel_offload_mac(app, netdev->dev_addr, in nfp_tunnel_add_shared_mac()
1060 nfp_tunnel_del_shared_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_del_shared_mac() argument
1063 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_del_shared_mac()
1070 entry = nfp_tunnel_lookup_offloaded_macs(app, mac); in nfp_tunnel_del_shared_mac()
1087 if (__nfp_tunnel_offload_mac(app, mac, nfp_mac_idx, in nfp_tunnel_del_shared_mac()
1089 nfp_flower_cmsg_warn(app, "MAC offload index revert failed on %s.\n", in nfp_tunnel_del_shared_mac()
1109 err = __nfp_tunnel_offload_mac(app, mac, nfp_mac_idx, false); in nfp_tunnel_del_shared_mac()
1111 nfp_flower_cmsg_warn(app, "MAC offload index revert failed on %s.\n", in nfp_tunnel_del_shared_mac()
1142 return __nfp_tunnel_offload_mac(app, mac, 0, true); in nfp_tunnel_del_shared_mac()
1146 nfp_tunnel_offload_mac(struct nfp_app *app, struct net_device *netdev, in nfp_tunnel_offload_mac() argument
1159 if (repr->app != app) in nfp_tunnel_offload_mac()
1172 nr_priv = nfp_flower_non_repr_priv_get(app, netdev); in nfp_tunnel_offload_mac()
1193 err = nfp_tunnel_add_shared_mac(app, netdev, port, false); in nfp_tunnel_offload_mac()
1213 err = nfp_tunnel_del_shared_mac(app, netdev, netdev->dev_addr, in nfp_tunnel_offload_mac()
1224 err = nfp_tunnel_add_shared_mac(app, netdev, port, true); in nfp_tunnel_offload_mac()
1229 err = nfp_tunnel_del_shared_mac(app, netdev, off_mac, true); in nfp_tunnel_offload_mac()
1231 nfp_flower_cmsg_warn(app, "Failed to remove offload of replaced MAC addr on %s.\n", in nfp_tunnel_offload_mac()
1253 int nfp_tunnel_mac_event_handler(struct nfp_app *app, in nfp_tunnel_mac_event_handler() argument
1260 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1263 nfp_flower_cmsg_warn(app, "Failed to delete offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1266 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1269 nfp_flower_cmsg_warn(app, "Failed to offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1276 err = nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1279 nfp_flower_cmsg_warn(app, "Failed to offload MAC change on %s.\n", in nfp_tunnel_mac_event_handler()
1298 if (repr->app != app) in nfp_tunnel_mac_event_handler()
1304 if (nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1306 nfp_flower_cmsg_warn(app, "Failed to delete offloaded MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1315 if (nfp_tunnel_offload_mac(app, netdev, in nfp_tunnel_mac_event_handler()
1317 nfp_flower_cmsg_warn(app, "Failed to offload MAC on %s.\n", in nfp_tunnel_mac_event_handler()
1324 int nfp_flower_xmit_pre_tun_flow(struct nfp_app *app, in nfp_flower_xmit_pre_tun_flow() argument
1327 struct nfp_flower_priv *app_priv = app->priv; in nfp_flower_xmit_pre_tun_flow()
1347 mac_entry = nfp_tunnel_lookup_offloaded_macs(app, in nfp_flower_xmit_pre_tun_flow()
1367 err = nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_PRE_TUN_RULE, in nfp_flower_xmit_pre_tun_flow()
1378 int nfp_flower_xmit_pre_tun_del_flow(struct nfp_app *app, in nfp_flower_xmit_pre_tun_del_flow() argument
1381 struct nfp_flower_priv *app_priv = app->priv; in nfp_flower_xmit_pre_tun_del_flow()
1393 err = nfp_flower_xmit_tun_conf(app, NFP_FLOWER_CMSG_TYPE_PRE_TUN_RULE, in nfp_flower_xmit_pre_tun_del_flow()
1404 int nfp_tunnel_config_start(struct nfp_app *app) in nfp_tunnel_config_start() argument
1406 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_config_start()
1436 void nfp_tunnel_config_stop(struct nfp_app *app) in nfp_tunnel_config_stop() argument
1438 struct nfp_flower_priv *priv = app->priv; in nfp_tunnel_config_stop()
1459 nfp_tun_cleanup_nn_entries(app); in nfp_tunnel_config_stop()