Commit db3e0ba0 authored by peter's avatar peter
Browse files

No commit message

No commit message
parent 0dd5a8a3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions {
	import from LibIpv6_MultiRfcs_TypesAndValues all;
	import from LibIpv6_Rfc2461NeighborDiscovery_Templates all;
	import from LibIpv6_Rfc2461NeighborDiscovery_TypesAndValues all;
	import from LibIpv6_Rfc2463Icmpv6_Functions all;

	/*
	** @desc  	This sends an ICMPv6 router advertisement from a router node
@@ -81,7 +82,7 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions {
																			c_aFlag1,
																			c_infiniteLifetime,
																			c_infiniteLifetime,
																			p_glaAddrTn)) ) ;
																			f_createPrefix ( p_glaAddrTn, p_prefixLength ) ) ) ) ;
			return v_ret ;
	}

+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@
		const UInt8 c_maxPrefixLength := 128;
		const UInt1 c_aFlag0 := 0;
		const UInt32 c_validLifetime0s := 0;
		const UInt32 c_validLifetime10s := 10;
		const UInt32 c_validLifetime30s := 30;
		const UInt32 c_preferredLifetime0s := 0;
		const UInt32 c_preferredLifetime10s := 10;
		const UInt32 c_mtu1180 := 1180;
+44 −1
Original line number Diff line number Diff line
@@ -414,6 +414,49 @@

	}//end f_getParameterProblemAfterEchoReq_ignoreEchoReply

	/*
	** @desc 	Creates a prefix using p_address and p_prefixLength. The p_prefixLength
	**			MSB bits remain unchanged, the others are set to zero.
	** @param	p_address Address used for prefix creation
	** @param	p_prefixLength Length of the prefix
	*/
	function f_createPrefix ( Ipv6Address p_address, UInt8 p_prefixLength )
	runs on LibIpv6Node
    return Ipv6Address {

		var Bit128 v_prefix;
		var integer v_pos;

		v_prefix := oct2bit ( p_address );

		for ( v_pos := 128 - p_prefixLength; v_pos < 128; v_pos := v_pos + 1 ) {
			v_prefix[v_pos] := '0'B;
		}

		return bit2oct ( v_prefix );

	} // end f_createPrefix

	/*
	** @desc 	Creates a prefix using p_address. The length of the prefix is fixed
	**			in 64. The first 64 bits remain unchanged, the others are set to zero.
	** @param	p_address Address used for prefix creation
	*/
	function f_createPrefix64 ( Ipv6Address p_address )
	runs on LibIpv6Node
    return Ipv6Address {

		var Bit128 v_prefix;
		var integer v_pos;

		v_prefix := oct2bit ( p_address );

		for ( v_pos := 64; v_pos < 128; v_pos := v_pos + 1 ) {
			v_prefix[v_pos] := '0'B;
		}

		return bit2oct ( v_prefix );

	} // end f_createPrefix

} // end module LibIpv6_Rfc2463Icmpv6_Functions