See VPNProvider::CreateServiceInner for more details. Note that “Provider.Type” is only valid for Services whose “Type” property is of value “vpn”. When a VPNService is created by VPNProvider (whether from a Manager ConfigureService D-Bus call or from a Profile containing an already-configured VPNService), the “Provider.Type” Service property is used specify what type of VPNDriver that VPNService should use. Note that VPNDriver D-Bus properties are exposed through the owning VPNService VPNDrivers are an implementation detail that is not exposed to D-Bus clients.ĬhromeOS supports 4 types of VPN solutions:Įach of these types has a corresponding VPNDriver child which contains the functionality needed on the Shill-side to support that VPN solution (note that Shill's involvement varies between different types of VPNs): Thus a VPNService passes Connect and Disconnect requests to its corresponding VPNDriver. A VPNDriver takes care of attaining a proper VirtualDevice, communicating with processes outside of Shill which implement some part of the VPN functionality, and setting up routes and routing rules for the corresponding VirtualDevice. Also since the VirtualDevice type is not unique to a particular VPN solution ( PPPDevices, for example, are used for cellular dongles, and L2TP/IPsec VPNs), the VPN-specific logic cannot be contained within the VirtualDevice instance.įor VPN, this is solved through the use of VPNDrivers. Therefore the standard means of a Service passing Connect requests over to its corresponding Device does not work. From the perspective of Shill's architecture, VPN is inherently different from physical connections because the corresponding Device (in this case representing a virtual interface) may not exist when a Connect is requested.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |