#!/usr/bin/env perl
# IBM(c) 2010 EPL license http://www.eclipse.org/legal/epl-v10.html
#
#####################################################
#
# This script will calculate the IPv6 link local address 
# from the mac address
# the mac address can be something like
# 00215ea68cd9 or 00:21:5e:a6:8c:d9
# example mac2linklocal 00215ea68cd9 
#
#####################################################

BEGIN
{
    $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
}

use lib "$::XCATROOT/lib/perl";

use strict;
use warnings;
use Getopt::Long;

if (
    !GetOptions("h|help"  => \$::HELP,
                "m=s" => \$::MACADDR,)
  )
{
    &usage;
    exit 1;
}

if ($::HELP)
{
    &usage;
    exit 0;
}

require xCAT::NetworkUtils;

if ($::MACADDR)
{
    my $linklocal =  xCAT::NetworkUtils->linklocaladdr($::MACADDR);
    print "$linklocal";
}

sub usage
{
    print "Usage:  mac2linklocal -m <mac_address>\n\n";
    print "Determines the IPv6 link local address that is appropriate for a NIC, based on its MAC.\n\n";
    print "Author:  Li, Guang Cheng\n";
    return;
}
