{
    use esmith::util;
    use esmith::NetworksDB;

    my $LocalIP = $DB->get('LocalIP');
    return unless defined $LocalIP; # Nothing to migrate yet
    $LocalIP = $LocalIP->value;

    my $LocalNetmask = $DB->get('LocalNetmask');
    return unless defined $LocalNetmask;
    $LocalNetmask = $LocalNetmask->value;

    my $ndb = esmith::NetworksDB->open ||
	esmith::NetworksDB->create;

    # And update networks db shadow
    my ($localnet) =
	    $ndb->get_all_by_prop(SystemLocalNetwork => 'yes');
    my ($local_network) =
	    esmith::util::computeNetworkAndBroadcast($LocalIP, $LocalNetmask);
    if (defined $localnet && $localnet->key ne $local_network)
    {
	# We need to delete the old record
	$localnet->delete;
	$localnet = undef;
    }
    if (!defined $localnet)
    {
	# We need to convert an existing local network to system network
	$localnet = $ndb->get($local_network) ||

	# or we need to create a new system network record
		    $ndb->new_record($local_network,
				{
				    type => 'network',
				});
    }
    # Update the netmask while we are at it
    $localnet->merge_props(
		SystemLocalNetwork => 'yes',
		Mask => $LocalNetmask,
	);
    # Make sure that localnetwork does not have a leftover
    # Router property if it was previously an additional
    # local network. Will fail silently if there is no
    # Router property
    $localnet->delete_prop('Router');
}
