Hello Dan, >> Signed-off-by: Saurav Babu <saurav.babu at samsung.com> >> --- >> wpa_supplicant/dbus/dbus_new.c | 9 +++++++++ >> wpa_supplicant/dbus/dbus_new_handlers.c | 28 >> ++++++++++++++++++++++++++++ >> wpa_supplicant/dbus/dbus_new_handlers.h | 3 +++ >> 3 files changed, 40 insertions(+) >> >> diff --git a/wpa_supplicant/dbus/dbus_new.c >> b/wpa_supplicant/dbus/dbus_new.c >> index a601182..7721b59 100644 >> --- a/wpa_supplicant/dbus/dbus_new.c >> +++ b/wpa_supplicant/dbus/dbus_new.c >> @@ -3114,6 +3114,15 @@ static const struct wpa_dbus_method_desc >> wpas_dbus_interface_methods[] = { >> } >> }, >> #endif /* CONFIG_NO_CONFIG_WRITE */ >> +#ifdef CONFIG_MESH >> + { "MeshInterfaceAdd", WPAS_DBUS_NEW_IFACE_INTERFACE, >> + (WPADBusMethodHandler) >> wpas_dbus_handler_mesh_interface_add, >> + { >> + { "ifname", "s", ARG_IN }, >> + END_ARGS >> + } >> + }, >> +#endif /* CONFIG_MESH */ > Two things here: > 1) should probably call it CreateMeshInterface since that's more > consistent with the existing CreateInterface. MeshInterfaceAdd creates a virtual mesh interface over existing Wi-Fi interface which would be used for mesh gate. > 2) it should follow the signature of CreateInterface, which means: > a) it should just take an 'args' dictionary so that we can extend > this easily in the future without changing the API/ABI > b) it should return the object path of the new mesh interface object > it just created, like CreateInterface. Yes it should return object path of the new mesh interface object it just created. > Or, maybe we just add a "mesh"::boolean recognized property to the > existing CreateInterface call's args dictionary? That's a lot less > work. I think I can add a "mesh"::boolean in CreateInterface call's args dictionary. But as we need to create a virtual mesh interface over existing interface, I need to pass "parent"::string also in args dictionary, parent here would be existing interface over which virtual mesh interface would be created. Please suggest if it is a good approach to also add parent in args dictionary? > But a bigger question: how much changes with mesh? Should it get its > own D-Bus namespace/interface like P2P has? Will there be other mesh- > specific methods and properties, and if so how many? Currently I can't find many changes with mesh. Thanks, Saurav > { NULL, NULL, NULL, { END_ARGS } } >> }; >> >> diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c >> b/wpa_supplicant/dbus/dbus_new_handlers.c >> index 7446f8d..85a5001 100644 >> --- a/wpa_supplicant/dbus/dbus_new_handlers.c >> +++ b/wpa_supplicant/dbus/dbus_new_handlers.c >> @@ -28,6 +28,7 @@ >> #include "dbus_dict_helpers.h" >> #include "dbus_common_i.h" >> #include "drivers/driver.h" >> +#include "../mesh.h" >> >> static const char * const debug_strings[] = { >> "excessive", "msgdump", "debug", "info", "warning", "error", >> NULL >> @@ -2098,6 +2099,33 @@ DBusMessage * >> wpas_dbus_handler_autoscan(DBusMessage *message, >> #endif /* CONFIG_AUTOSCAN */ >> >> >> +#ifdef CONFIG_MESH >> +/** >> + * wpas_dbus_handler_mesh_interface_add - Add Mesh Interface >> + * @message: Pointer to incoming dbus message >> + * @wpa_s: wpa_supplicant structure for a network interface >> + * Returns: NULL >> + * >> + * Handler function for "MeshInterfaceAdd" method call of network >> interface. >> + */ >> +DBusMessage * wpas_dbus_handler_mesh_interface_add(DBusMessage >> *message, >> + struct wpa_supplicant >> *wpa_s) >> +{ >> + DBusMessage *reply = NULL; >> + char *ifname; >> + >> + dbus_message_get_args(message, NULL, DBUS_TYPE_STRING, >> &ifname, >> + DBUS_TYPE_INVALID); >> + >> + if (wpas_mesh_add_interface(wpa_s, ifname, sizeof(ifname)) < >> 0) >> + reply = dbus_message_new_error(message, >> + DBUS_ERROR_INVALID_AR >> GS, >> + NULL); >> + >> + return reply; >> +} >> +#endif /* CONFIG_MESH */ >> + >> /* >> * wpas_dbus_handler_eap_logoff - IEEE 802.1X EAPOL state machine >> logoff >> * @message: Pointer to incoming dbus message >> diff --git a/wpa_supplicant/dbus/dbus_new_handlers.h >> b/wpa_supplicant/dbus/dbus_new_handlers.h >> index fe8767a..1bd46f9 100644 >> --- a/wpa_supplicant/dbus/dbus_new_handlers.h >> +++ b/wpa_supplicant/dbus/dbus_new_handlers.h >> @@ -233,4 +233,7 @@ DBusMessage * wpas_dbus_handler_subscribe_preq( >> DBusMessage * wpas_dbus_handler_unsubscribe_preq( >> DBusMessage *message, struct wpa_supplicant *wpa_s); >> >> +DBusMessage * wpas_dbus_handler_mesh_interface_add(DBusMessage >> *message, >> + struct wpa_supplicant >> *wpa_s); >> + >> #endif /* CTRL_IFACE_DBUS_HANDLERS_NEW_H */ _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap