2013-09-10 03:38:16 +00:00
/*
* Copyright ( c ) 2013 , Cisco Systems , Inc . All rights reserved .
*
2015-09-30 13:34:00 -07:00
* This software is available to you under a choice of one of two
* licenses . You may choose to be licensed under the terms of the GNU
* General Public License ( GPL ) Version 2 , available from the file
* COPYING in the main directory of this source tree , or the
* BSD license below :
*
* Redistribution and use in source and binary forms , with or
* without modification , are permitted provided that the following
* conditions are met :
*
* - Redistributions of source code must retain the above
* copyright notice , this list of conditions and the following
* disclaimer .
*
* - Redistributions in binary form must reproduce the above
* copyright notice , this list of conditions and the following
* disclaimer in the documentation and / or other materials
* provided with the distribution .
2013-09-10 03:38:16 +00:00
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND ,
* EXPRESS OR IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY , FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT . IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER LIABILITY , WHETHER IN AN
* ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM , OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE .
*
*/
# ifndef USNIC_CMN_UTIL_H
# define USNIC_CMN_UTIL_H
2017-03-14 16:01:57 +02:00
# include <net/addrconf.h>
2014-01-09 14:48:17 -08:00
static inline void
2014-01-15 17:02:20 -08:00
usnic_mac_ip_to_gid ( const char * const mac , const __be32 inaddr , char * raw_gid )
2014-01-09 14:48:17 -08:00
{
raw_gid [ 0 ] = 0xfe ;
raw_gid [ 1 ] = 0x80 ;
memset ( & raw_gid [ 2 ] , 0 , 2 ) ;
memcpy ( & raw_gid [ 4 ] , & inaddr , 4 ) ;
2017-03-14 16:01:57 +02:00
addrconf_addr_eui48 ( & raw_gid [ 8 ] , mac ) ;
2014-01-09 14:48:17 -08:00
}
2013-09-10 03:38:16 +00:00
# endif /* USNIC_COMMON_UTIL_H */