| digraph p2p_arch2 { |
| ranksep=.75; |
| size = "7.5,7.5"; |
| |
| edge [dir=none]; |
| |
| subgraph cluster_wpa_gui { |
| label = "wpa_gui"; |
| |
| status -> Qt; |
| scan -> Qt; |
| network -> Qt; |
| Qt -> peers; |
| Qt -> WPS; |
| Qt -> gui_ctrl; |
| |
| gui_ctrl [label="ctrl i/f"]; |
| } |
| |
| subgraph cluster_wpa_supplicant { |
| label = "wpa_supplicant" |
| |
| ctrl_iface [label="ctrl i/f"]; |
| authenticator [label="Authenticator"]; |
| supplicant [label="Supplicant"]; |
| driver_iface [label="driver i/f"]; |
| wps_registrar [label="WPS\nRegistrar"]; |
| wps_enrollee [label="WPS\nEnrollee"]; |
| mgmt_entity [label="Management\nentity"]; |
| |
| ctrl_iface -> mgmt_entity; |
| wps_registrar -> mgmt_entity; |
| wps_enrollee -> mgmt_entity; |
| mgmt_entity -> authenticator; |
| mgmt_entity -> supplicant; |
| mgmt_entity -> driver_iface; |
| } |
| |
| subgraph cluster_wpa_cli { |
| label = "wpa_cli -a" |
| |
| wpa_cli_action; |
| } |
| |
| subgraph cluster_dnsmasq { |
| label = "dnsmasq" |
| |
| dnsmasq; |
| } |
| |
| subgraph cluster_dhclient { |
| label = "dhclient" |
| |
| dhclient; |
| } |
| |
| subgraph cluster_kernel { |
| label = "Kernel" |
| |
| ioctl -> umac; |
| netdev -> umac; |
| umac -> p2p_module; |
| p2p_module [label="P2P\nmodule"]; |
| umac -> driver; |
| |
| { rank = same; umac; p2p_module; } |
| } |
| |
| gui_ctrl -> ctrl_iface; |
| wpa_cli_action -> ctrl_iface; |
| |
| driver_iface -> ioctl; |
| |
| wpa_cli_action -> dnsmasq; |
| wpa_cli_action -> dhclient; |
| |
| dnsmasq -> netdev; |
| dhclient -> netdev; |
| |
| edge [color=blue,dir=both]; |
| p2p_module -> umac -> driver; |
| |
| edge [color=green,dir=both]; |
| peers -> Qt -> gui_ctrl -> ctrl_iface -> mgmt_entity -> driver_iface -> ioctl -> umac -> p2p_module; |
| } |