]> git.saurik.com Git - apple/configd.git/blobdiff - SystemConfiguration.fproj/SCNetworkConfigurationPrivate.h
configd-801.1.1.tar.gz
[apple/configd.git] / SystemConfiguration.fproj / SCNetworkConfigurationPrivate.h
index 3998ac96cb3833c2a6c917510be466e84d5ec5d7..73cc02eb44e89d96654e10919683620992ee46d3 100644 (file)
@@ -1,15 +1,15 @@
 /*
- * Copyright (c) 2005-2011 Apple Inc. All rights reserved.
+ * Copyright (c) 2005-2015 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * compliance with the License. Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this
  * file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -17,7 +17,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_LICENSE_HEADER_END@
  */
 
@@ -44,13 +44,14 @@ __BEGIN_DECLS
  */
 
 #pragma mark -
-#pragma mark SCNetworkInterface configuration (typedefs, consts)
+#pragma mark SCNetworkInterface configuration (typedefs, consts, enums)
 
 /*!
        @const kSCNetworkInterfaceTypeBridge
  */
 extern const CFStringRef kSCNetworkInterfaceTypeBridge                                         __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0/*SPI*/);
 
+
 /*!
        @const kSCNetworkInterfaceTypeLoopback
  */
@@ -79,6 +80,14 @@ extern const CFStringRef kSCNetworkInterfaceTypeVPN                                          __OSX_AVAILABLE_STARTIN
  */
 typedef SCNetworkInterfaceRef SCBridgeInterfaceRef;
 
+typedef CF_ENUM(uint32_t, SCNetworkServicePrimaryRank) {
+       kSCNetworkServicePrimaryRankDefault     = 0,
+       kSCNetworkServicePrimaryRankFirst       = 1,
+       kSCNetworkServicePrimaryRankLast        = 2,
+       kSCNetworkServicePrimaryRankNever       = 3,
+       kSCNetworkServicePrimaryRankScoped      = 4
+};
+
 #pragma mark -
 #pragma mark SCNetworkInterface configuration (SPI)
 
@@ -162,6 +171,18 @@ _SCNetworkInterfaceCompare                         (const void                     *val1,
                                                         const void                     *val2,
                                                         void                           *context)       __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
 
+/*!
+       @function _SCNetworkInterfaceCopyActive
+       @discussion Creates an SCNetworkInterface and associated with interface name
+               and SCDynamicStoreRef
+       @param the interface name
+       @param the SCDynamicStoreRef
+       @result the SCNetworkInterface
+ */
+SCNetworkInterfaceRef
+_SCNetworkInterfaceCopyActive                          (SCDynamicStoreRef              store,
+                                                        CFStringRef                    bsdName)        __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_5_0);
+
 /*!
        @function _SCNetworkInterfaceCopyAllWithPreferences
                Returns all network capable interfaces on the system.
@@ -172,6 +193,14 @@ _SCNetworkInterfaceCompare                         (const void                     *val1,
 CFArrayRef /* of SCNetworkInterfaceRef's */
 _SCNetworkInterfaceCopyAllWithPreferences              (SCPreferencesRef               prefs)          __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_5_0/*SPI*/);
 
+/*!
+       @function _SCNetworkInterfaceCopyBTPANInterface
+       @discussion Returns the SCNetworkInterface associated with the BT-PAN interface
+       @result The BT-PAN interface; NULL if the interface is not (yet) known.
+ */
+SCNetworkInterfaceRef
+_SCNetworkInterfaceCopyBTPANInterface                  (void)                                          __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_NA);
+
 /*!
        @function _SCNetworkInterfaceCopySlashDevPath
        @discussion Returns the /dev pathname for the interface.
@@ -229,6 +258,28 @@ _SCNetworkInterfaceCreateWithEntity                        (CFAllocatorRef                 allocator,
 SCNetworkInterfaceRef
 _SCNetworkInterfaceCreateWithIONetworkInterfaceObject  (io_object_t                    if_obj)         __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
 
+/*!
+       @function SCNetworkInterfaceGetPrimaryRank
+       @discussion We allow caller to retrieve the rank on an interface.
+       @param the interface to get the rank
+       @result SCNetworkServicePrimaryRank
+ */
+SCNetworkServicePrimaryRank
+SCNetworkInterfaceGetPrimaryRank                       (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_5_0);
+
+/*!
+       @function SCNetworkInterfaceSetPrimaryRank
+       @discussion We allow caller to set an assertion on an interface.
+               The rank assertion lives as long as the SCNetworkInterfaceRef
+               remains valid.
+       @param the interface to set the rank assertion
+       @param the new rank to be set
+       @result TRUE if operation is successful; FALSE if an error was encountered.
+ */
+Boolean
+SCNetworkInterfaceSetPrimaryRank                       (SCNetworkInterfaceRef          interface,
+                                                        SCNetworkServicePrimaryRank    newRank)        __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_5_0);
+
 #define        kSCNetworkInterfaceConfigurationActionKey               CFSTR("New Interface Detected Action")
 #define        kSCNetworkInterfaceConfigurationActionValueNone         CFSTR("None")
 #define        kSCNetworkInterfaceConfigurationActionValuePrompt       CFSTR("Prompt")
@@ -236,7 +287,8 @@ _SCNetworkInterfaceCreateWithIONetworkInterfaceObject       (io_object_t                    if_obj)         __
 
 #define        kSCNetworkInterfaceNetworkConfigurationOverridesKey     CFSTR("NetworkConfigurationOverrides")
 #define        kSCNetworkInterfaceHiddenConfigurationKey               CFSTR("HiddenConfiguration")
-#define        kSCNetworkInterfaceHiddenPortKey                        CFSTR("HiddenPort")
+#define        kSCNetworkInterfaceHiddenPortKey                        CFSTR("HiddenPort") /* for serial ports */
+#define        kSCNetworkInterfaceHiddenInterfaceKey                   CFSTR("HiddenInterface") /* for network interfaces */
 
 // IORegistry property to indicate that a [WWAN] interface is not yet ready
 #define        kSCNetworkInterfaceInitializingKey                      CFSTR("Initializing")
@@ -270,6 +322,16 @@ _SCNetworkInterfaceGetConfigurationAction          (SCNetworkInterfaceRef          interface)      __
 CFDataRef
 _SCNetworkInterfaceGetHardwareAddress                  (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
 
+/*!
+       @function _SCNetworkInterfaceGetIOInterfaceNamePrefix
+       @discussion Returns the IOInterfaceNamePrefix for the interface.
+       @param interface The network interface.
+       @result The IOInterfaceNamePrefix associated with the interface;
+               NULL if no IOInterfaceNamePrefix is available.
+ */
+CFStringRef
+_SCNetworkInterfaceGetIOInterfaceNamePrefix            (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_6_0);
+
 /*!
        @function _SCNetworkInterfaceGetIOInterfaceType
        @discussion Returns the IOInterfaceType for the interface.
@@ -284,7 +346,7 @@ _SCNetworkInterfaceGetIOInterfaceType                       (SCNetworkInterfaceRef          interface)      __OSX
        @discussion Returns the IOInterfaceUnit for the interface.
        @param interface The network interface.
        @result The IOInterfaceUnit associated with the interface;
-               NULL if no IOLocation is available.
+               NULL if no IOInterfaceUnit is available.
  */
 CFNumberRef
 _SCNetworkInterfaceGetIOInterfaceUnit                  (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
@@ -299,6 +361,16 @@ _SCNetworkInterfaceGetIOInterfaceUnit                      (SCNetworkInterfaceRef          interface)      __OSX
 CFStringRef
 _SCNetworkInterfaceGetIOPath                           (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
 
+/*!
+       @function _SCNetworkInterfaceGetIORegistryEntryID
+       @discussion Returns the IORegistry entry ID for the interface.
+       @param interface The network interface.
+       @result The IORegistry entry ID associated with the interface;
+               Zero if no entry ID is available.
+ */
+uint64_t
+_SCNetworkInterfaceGetIORegistryEntryID                        (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_8,__IPHONE_5_0);
+
 /*!
        @function _SCNetworkInterfaceIsBluetoothPAN
        @discussion Identifies if a network interface is a Bluetooth PAN (GN) device.
@@ -364,6 +436,15 @@ _SCNetworkInterfaceIsModemV92                              (SCNetworkInterfaceRef          interface)      __OSX_AVAILA
 Boolean
 _SCNetworkInterfaceIsTethered                          (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_3_0);
 
+/*!
+       @function _SCNetworkInterfaceIsThunderbolt
+       @discussion Identifies if a network interface is a Thunderbolt device
+       @param interface The network interface.
+       @result TRUE if the interface is a Thunderbolt device.
+ */
+Boolean
+_SCNetworkInterfaceIsThunderbolt                       (SCNetworkInterfaceRef          interface)      __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0);
+
 /*!
        @function _SCNetworkInterfaceIsPhysicalEthernet
        @discussion Indicates whether a network interface is a real ethernet interface i.e. one with an ethernet PHY.
@@ -630,6 +711,14 @@ SCNetworkInterfaceSetPassword                              (SCNetworkInterfaceRef          interface,
                                                         CFDictionaryRef                options)        __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
 
 
+Boolean
+SCNetworkInterfaceGetDisableUntilNeeded                        (SCNetworkInterfaceRef interface) __OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
+
+Boolean
+SCNetworkInterfaceSetDisableUntilNeeded                        (SCNetworkInterfaceRef interface,
+                                                        Boolean disable) __OSX_AVAILABLE_STARTING(__MAC_10_11,__IPHONE_9_0);
+
+
 #pragma mark -
 #pragma mark SCNetworkProtocol configuration (SPI)
 
@@ -661,14 +750,6 @@ isA_SCNetworkService(CFTypeRef obj)
        return (isA_CFType(obj, SCNetworkServiceGetTypeID()));
 }
 
-enum {
-       kSCNetworkServicePrimaryRankDefault     = 0,
-       kSCNetworkServicePrimaryRankFirst       = 1,
-       kSCNetworkServicePrimaryRankLast        = 2,
-       kSCNetworkServicePrimaryRankNever       = 3
-};
-typedef uint32_t       SCNetworkServicePrimaryRank;
-
 /*!
        @function _SCNetworkServiceCompare
        @discussion Compares two SCNetworkService objects.
@@ -736,6 +817,41 @@ SCNetworkServiceSetPrimaryRank                             (SCNetworkServiceRef            service,
 Boolean
 _SCNetworkServiceIsVPN                                 (SCNetworkServiceRef            service)        __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 
+/*!
+       @function SCNetworkServiceSetExternalID
+       @discussion Set the external identifier for a network service.
+       @param service A reference to the network service.
+       @param identifierDomain A service can have multiple external identifiers. This string specifies which external identifier to set.
+       @param identifier The new external identifier to assign to the network service.
+       @result Returns TRUE if the external identifier was set successfully, FALSE if an error occurred.
+ */
+Boolean
+SCNetworkServiceSetExternalID                          (SCNetworkServiceRef            service,
+                                                        CFStringRef                    identifierDomain,
+                                                        CFStringRef identifier);
+
+/*!
+       @function SCNetworkServiceCopyExternalID
+       @discussion Copy the external identifier for a network service.
+       @param service The network service.
+       @param identifierDomain A service can have multiple external identifiers. This string specifies which external identifier to copy.
+       @result Returns the service's external identifier, or NULL if the service does not have an external identifier in the given domain.
+*/
+CFStringRef
+SCNetworkServiceCopyExternalID                         (SCNetworkServiceRef            service,
+                                                        CFStringRef                    identifierDomain);
+
+/*!
+       @function _SCNetworkServiceSetServiceID
+       @discussion Sets serviceID of the service to a different value provided.
+       @param service The network service
+       @param newServiceID The new service ID
+       @result TRUE if new service ID is set successfully.
+ */
+Boolean
+_SCNetworkServiceSetServiceID                          (SCNetworkServiceRef            service,
+                                                        CFStringRef                    newServiceID)   __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
 #pragma mark -
 #pragma mark SCNetworkSet configuration (SPI)
 
@@ -752,6 +868,17 @@ isA_SCNetworkSet(CFTypeRef obj)
 }
 
 
+/*!
+       @function SCNetworkSetCopyAvailableInterfaces
+       @discussion Returns all available interfaces for the set.
+               The interfaces excludes those of bond and bridge members.
+       @param set The network set.
+       @result The list of SCNetworkInterfaces.
+               You must release the returned value.
+ */
+CFArrayRef
+SCNetworkSetCopyAvailableInterfaces                    (SCNetworkSetRef                set)            __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
 /*!
        @function SCNetworkSetEstablishDefaultConfiguration
        @discussion Updates a network set by adding services for
@@ -818,6 +945,213 @@ Boolean
 SCNetworkSetSetSelectedVPNService                      (SCNetworkSetRef                set,
                                                         SCNetworkServiceRef            service)        __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
 
-__END_DECLS
+Boolean
+_SCNetworkSetSetSetID                                  (SCNetworkSetRef                set,
+                                                        CFStringRef                    setID)          __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+/*!
+       @group VPN Service configuration
+ */
 
+#pragma mark -
+#pragma mark VPN Service configuration
+
+typedef SCNetworkServiceRef VPNServiceRef;
+
+/*!
+       @function VPNServiceCopyAllMatchingExternalID
+       @discussion Copy the VPN services with the given external identifier.
+       @param prefs A reference to the prefs where the VPN services are stored.
+       @param identifierDomain A service can have multiple external identifiers. This string specifies which one to match with the given identifier.
+       @param identifier The external identifier of the desired services.
+       @result A array of references to the VPN services with the given identifier, or NULL if no such service exists
+ */
+CFArrayRef
+VPNServiceCopyAllMatchingExternalID            (SCPreferencesRef               prefs,
+                                                CFStringRef                    identifierDomain,
+                                                CFStringRef identifier)                __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceCopyAll
+       @discussion Copy all VPN services.
+       @param prefs A reference to the prefs where the VPN services are stored.
+       @result An array containing VPNServiceRefs for all the VPN services.
+ */
+CFArrayRef
+VPNServiceCopyAll                              (SCPreferencesRef               prefs)  __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceCopyAppRuleIDs
+       @discussion Copy all the app rule identifiers for a VPN service.
+       @param service A reference to the VPN service.
+       @result An array of CFStringRefs, each string containing the identifier of a app rule in the given service.
+ */
+CFArrayRef
+VPNServiceCopyAppRuleIDs                       (VPNServiceRef                  service)        __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceSetAppRule
+       @discussion Add or modify an app rule in a VPN service. The ruleSettings dictionary must contain one of the following keys:
+               <pre>kSCValNetVPNAppRuleExecutableMatch</pre>
+               <pre>kSCValNetVPNAppRuleAccountIdentifierMatch</pre>
+       The ruleSettings dictionary may also contain the following keys:
+               <pre>kSCValNetVPNAppRuleDNSDomainMatch</pre>
+       See SCSchemaDefinitionsPrivate.h for more details.
+       @param service A reference to the VPN service.
+       @param ruleIdentifier The identifier of the new app rule.
+       @param ruleSettings The settings for the new app rule. See the dictionary keys defined above.
+       @result TRUE if the app rule was set successfully, FALSE if an error occurred.
+ */
+Boolean
+VPNServiceSetAppRule                           (VPNServiceRef                  service,
+                                                CFStringRef                    ruleIdentifier,
+                                                CFDictionaryRef                ruleSettings)   __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceCopyAppRule
+       @discussion Copy the settings for a app rule in a VPN service.
+       @param service The app tunnel service.
+       @param ruleIdentifier The ID of the app rule.
+       @result The rule settings, or NULL if the app rule could not be found.
+ */
+CFDictionaryRef
+VPNServiceCopyAppRule                          (VPNServiceRef                  service,
+                                                CFStringRef                    ruleIdentifier) __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceRemoveAppRule
+       @discussion Remove an app rule from a VPN service.
+       @param service The VPN service.
+       @param ruleIdentifier The ID of the app rule to remove.
+       @result Returns TRUE if the app rule was removed successfully; FALSE otherwise.
+ */
+Boolean
+VPNServiceRemoveAppRule                                (VPNServiceRef                  service,
+                                                CFStringRef                    ruleIdentifier) __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @function VPNServiceIsManagedAppVPN
+       @discussion Check to see if a VPN service is a managed App VPN service
+       @param service The VPN servie.
+       @result Returns TRUE if the service is a managed App VPN service; FALSE otherwise.
+*/
+Boolean
+VPNServiceIsManagedAppVPN                      (VPNServiceRef                  service)        __OSX_AVAILABLE_STARTING(__MAC_10_9,__IPHONE_7_0/*SPI*/);
+
+/*!
+       @group  Migration SPI
+ */
+#pragma mark -
+#pragma mark Migration SPI
+
+extern const CFStringRef kSCNetworkConfigurationRepair                 /* CFBoolean */         __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+extern const CFStringRef kSCNetworkConfigurationMigrationActionKey     /* CFNumber */          __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
+typedef CF_ENUM(uint32_t, SCNetworkConfigurationMigrationAction) {
+       kSCNetworkConfigurationMigrationAction_CleanInstall     = 0,
+       kSCNetworkConfigurationMigrationAction_Upgrade          = 1,
+       kSCNetworkConfigurationMigrationAction_Restore          = 2,
+};
+
+/*!
+       @function _SCNetworkConfigurationCopyMigrationPaths
+       @result Returns an array of paths that we would need from the source
+ */
+CFArrayRef
+_SCNetworkConfigurationCopyMigrationPaths(CFDictionaryRef options)                             __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
+/*!
+       @function _SCNetworkConfigurationPerformMigration
+       @discussion Updates the network configuration of the target system with
+               configurations from previous system. Both sourceDir and targetDir
+               cannot be NULL, since NULL indicates API to look at the local system
+       @param sourceDir A reference which points to the root of a directory populated
+               with the list of requested directories/path from the "source" volume. Passing NULL
+               will indicate that sourceDir should point to local system
+       @param currentDir A reference which points to the root of a directory populated
+               with the list of requested directories/path from the "destination" volume. Passing
+               NULL will indicate that currentDir should point to local system.
+       @param targetDir A reference which points to the root of a directory that we
+               will populate (update) with new configuration. Passing NULL will mean that we want to
+               migrate to the currentDir. If not NULL, then this path should exist.
+       @param options Argument which will tell us what action we are supposed to take
+               (clean-install, upgrade, migrate/restore settings from another system, ...)
+       @result Returns array which would consist of those paths that should be moved
+               from the "targetDir" directory to destination volume. You must release the returned value.
+ */
+
+CF_RETURNS_RETAINED
+CFArrayRef
+_SCNetworkConfigurationPerformMigration(CFURLRef sourceDir,
+                                       CFURLRef currentDir,
+                                       CFURLRef targetDir,
+                                       CFDictionaryRef options)                                __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
+
+/*!
+       @function _SCNetworkConfigurationCheckValidity
+       @discussion Verifies whether the configuration files present in the specified
+               directory have valid mappings or not
+       @param configDir A reference which points to the directory where the configuration
+               files are present
+       @result TRUE if valid configurations are found
+
+ */
+
+Boolean
+_SCNetworkConfigurationCheckValidity(CFURLRef configDir,
+                                    CFDictionaryRef options)                                   __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
+
+/*!
+ @function     _SCNetworkConfigurationCheckValidityWithPreferences
+ @discussion   Validates the specified preferences.plist against NetworkInterfaces.plist
+ @param prefs  the preferences ref pointing to the said preferences.plist
+ @param ni_prefs       the preferences ref pointing to the said NetworkInterfaces.plist
+ @result       TRUE if the configurations are valid against each other
+ */
+
+Boolean
+_SCNetworkConfigurationCheckValidityWithPreferences (SCPreferencesRef prefs,
+                                                     SCPreferencesRef ni_prefs,
+                                                     CFDictionaryRef options)                          __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
+
+
+/*!
+ @function _SCNetworkMigrationAreConfigurationsIdentical
+ @discussion Compares the migration output between network configurations
+               with the expected output.
+ @param configPref Preferences pointing toward preferences.plist file to
+               be compared with expected file.
+ @param configNetworkInterfacePref Preferences pointing toward NetworkInterfaces.plist
+               file to be compared with expected file.
+ @param expectedConfigPref Preferences pointing toward preferences.plist file
+               which is the expected result.
+ @param expectedNetworkInterfacePref Preferences pointing toward NetworkInterfaces.plist
+               file which is the expected file.
+ @result TRUE if configurations match with the expected configurations
+
+ */
+
+Boolean
+_SCNetworkMigrationAreConfigurationsIdentical (CFURLRef configurationURL,
+                                              CFURLRef expectedConfigurationURL)
+                                                       __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
+
+/*!
+ @function     _SCNetworkConfigurationCopyMigrationRemovePaths
+ @discussion   List of paths to files which we want to be removed from the target filesystem after migration
+ @param targetPaths    the CFArray returned by _SCNetworkConfigurationPerformMigration
+ @param targetDir      the CFURL passed to _SCNetworkConfigurationPerformMigration
+ @result       An array of CFURL's; NULL if no paths need to be removed from the target filesystem
+*/
+
+CFArrayRef     // of CFURLRef's
+_SCNetworkConfigurationCopyMigrationRemovePaths        (CFArrayRef     targetPaths,
+                                                 CFURLRef      targetDir)                              __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
+
+__END_DECLS
 #endif /* _SCNETWORKCONFIGURATIONPRIVATE_H */