// $Copyright$
//
// $Id: hostRecvRaReachableTime.def,v 1.1.1.1 2000/09/28 00:14:48 sekiya Exp $

#include "nd.def"

//----------------------------------------------------------------------
_HETHER_define(hether_x2allnode, ether(A0N_MAC_ADDR),
        v62ethermulti(v6(_ALLNODES_MCAST_ADDR)))

_SLLOPT_define(sllopt_x, ether(A0N_MAC_ADDR))

//----------------------------------------------------------------------
// multicast RA
//	X(link-local) ==> all-node
//	m=0, o=0
//	lifetime=600,
//	reachableTime=30,000, 10,000, 60,000 msec
//	retransTimer=0 (unspecified)
//	w/ SLLA
//----------------------------------------------------------------------
FEM_icmp6_ra(ra_x2allnode_sll_reachable30, hether_x2allnode,
	{
	 _SRC(v6ether(A0N_MAC_ADDR));
	 _DST(v6(_ALLNODES_MCAST_ADDR));
	 HopLimit=255;
	},
	{
	 CurHopLimit=0;
	 MFlag=0;
	 OFlag=0;
	 LifeTime=600;
	 ReachableTime=30000;
	 RetransTimer=0;
	 option=sllopt_x;
	}
)

//----------------------------------------------------------------------
FEM_icmp6_ra(ra_x2allnode_sll_reachable60, hether_x2allnode,
	{
	 _SRC(v6ether(A0N_MAC_ADDR));
	 _DST(v6(_ALLNODES_MCAST_ADDR));
	 HopLimit=255;
	},
	{
	 CurHopLimit=0;
	 MFlag=0;
	 OFlag=0;
	 LifeTime=600;
	 ReachableTime=60000;
	 RetransTimer=0;
	 option=sllopt_x;
	}
)

//----------------------------------------------------------------------
FEM_icmp6_ra(ra_x2allnode_sll_reachable90, hether_x2allnode,
	{
	 _SRC(v6ether(A0N_MAC_ADDR));
	 _DST(v6(_ALLNODES_MCAST_ADDR));
	 HopLimit=255;
	},
	{
	 CurHopLimit=0;
	 MFlag=0;
	 OFlag=0;
	 LifeTime=600;
	 ReachableTime=90000;
	 RetransTimer=0;
	 option=sllopt_x;
	}
)

//----------------------------------------------------------------------
// multicast RA
//	X(link-local) ==> all-node
//	m=0, o=0
//	lifetime=0,
//	reachableTime=0 (unspecified)
//	retransTimer=0 (unspecified)
//	w/o SLLA
//----------------------------------------------------------------------
FEM_icmp6_ra(ra_x2allnode_clrrtr, hether_x2allnode,
	{
	 _SRC(v6ether(A0N_MAC_ADDR));
	 _DST(v6(_ALLNODES_MCAST_ADDR));
	 HopLimit=255;
	},
	{
	 CurHopLimit=0;
	 MFlag=0;
	 OFlag=0;
	 LifeTime=0;
	 ReachableTime=0;
	 RetransTimer=0;
	}
)

//----------------------------------------------------------------------
// unicast NA
//      TN(link-local) ==> NUT(link-local)
//      R=0, S=1, O=1
//      w/ TLLA
//----------------------------------------------------------------------
FEM_icmp6_na(unicast_na_tn2nut_rSO_tll, _HETHER_tn2nut,
        {
         _SRC(tnv6());
         _DST(nutv6());
         HopLimit=255;
        },
        {
         RFlag=0;
         SFlag=1;
         OFlag=1;
         TargetAddress=tnv6();
         option=_TLLOPT_tn;
        }
)

//----------------------------------------------------------------------

