āĻāĻāĻŋ āĻšāĻ˛ ns-3-āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻ¸ā§āĻā§āĻļāĻ¨ āĻ¯ā§āĻŽāĻ¨ āĻāĻŦā§āĻ¨ā§āĻā§ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨, āĻĢā§āĻĄā§āĻ°āĻž āĻ āĻ¨āĻ˛āĻžāĻāĻ¨, āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦāĻž MAC OS āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§āĻ¸ā§āĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ:
NAME āĻāĻ°
ns-3-āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ - ns-3 āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛
āĻāĻ ns-3 āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛. ns-3 āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĒāĻžāĻāĻāĻāĻŋāĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻĢāĻ°ā§āĻŽ:
¡ ns-3 āĻ āĻā§āĻ¸āĻŋāĻā§āĻ¨: āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻĒāĻžāĻŦāĻ˛āĻŋāĻ API-āĻāĻ° āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨
¡ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛, āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ (āĻāĻ āĻ¨āĻĨāĻŋ), āĻāĻŦāĻ āĻŽāĻĄā§āĻ˛ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻŽā§āĻā§āĻ¤āĻŋ āĻāĻŦāĻ
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻŦā§āĻā§āĻˇ
¡ ns-3 āĻāĻāĻāĻŋ
āĻ¸ā§āĻāĻŋāĻĒāĻ¤ā§āĻ°
āĻ¸āĻāĻāĻ āĻ¨
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž ns-3 āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ
āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ° āĻ¸āĻāĻāĻ āĻ¨āĨ¤
ns-3 āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨-āĻāĻā§āĻ¨ā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻ° āĻāĻŦāĻ āĻŽāĻĄā§āĻ˛ āĻĨāĻžāĻā§
C++ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ ns-3 āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¯āĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻŦāĻž āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ C++ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¯āĻž āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻļā§āĻ°ā§ āĻāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° ns-3 āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ API āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§, āĻ¯āĻž āĻĒāĻžāĻāĻĨāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻ āĻ¨ā§āĻāĻāĻž āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ "ns3" āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨ ns-3 āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
C++ āĻāĨ¤
[āĻāĻŦāĻŋ] āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻž ns-3.UNINDENT
āĻāĻ° āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ ns-3 āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ src āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻŦāĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻāĻāĻ āĻ¨ of ns-3. āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ āĻĨā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¤ āĻāĻžāĻ āĻāĻ°āĻŦ
āĻāĻĒ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¨ā§āĻā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŽā§āĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋ; āĻ¸āĻŦ āĻā§āĻĄāĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¯ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻāĻ¤ āĻŽāĻĄā§āĻ˛āĨ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧ
src/core. āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
src/āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ. āĻāĻ āĻĻā§āĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ āĻŋāĻ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻ° āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻļā§āĻ§ā§ āĻ¨āĻ¯āĻŧ
āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĨ¤ āĻāĻ° āĻāĻĒāĻ°ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ ns-3 āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĨā§āĻā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨
āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŽāĻĄā§āĻ˛, āĻ¯āĻž āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻĒāĻ°ā§ āĻāĻžāĻĄāĻŧāĻžāĻ ns-3 āĻā§āĻ°, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŋ, āĻāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ āĻāĻļā§āĻ
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛, āĻ āĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻž āĻŽā§āĻ˛ C++-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ API-āĻāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻāĨ¤ ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¤ API āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦāĻž āĻāĻāĻāĻŋ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻĒāĻŋāĻāĻ āĻ¯ā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻŽā§āĻĄāĻŧāĻ āĻŦāĻž āĻāĻ¨āĻā§āĻ¯āĻžāĻĒāĻ¸ā§āĻ˛ā§āĻļāĻ¨āĨ¤ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°āĻāĻž āĻšāĻā§āĻā§ ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ
āĻĻā§āĻāĻŋ API-āĻ¤ā§ āĻ˛ā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻŦāĻž āĻāĻ° āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ) āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻĻāĻŋāĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻā§āĻāĻžāĻŦā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋ ns-3 āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĻāĻŋāĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§
āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻāĻ¤āĻžāĻ° āĻŽāĻĄā§āĻ˛āĨ¤
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ° āĻŦāĻžāĻāĻŋ āĻ āĻāĻļāĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻĒāĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻāĻ°ā§
āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻāĻļ āĻĻā§āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°ā§ ns-3: āĻĻā§āĻ¯ āĻ¨ā§āĻĄ āĻāĻŦāĻ
āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸. āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ NetDevice āĻĒā§āĻ°āĻāĻžāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŦāĻ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻā§āĻ¸āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŽāĻĄā§āĻ˛, āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻā§āĻ API āĻ¸āĻšāĨ¤ āĻĻā§āĻ¯
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻāĻžāĻ° āĻāĻ°ā§, āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¯ā§āĻŽāĻ¨ āĻ ā§āĻ¯āĻžāĻ¨āĻŋāĻŽā§āĻāĻ° āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĨ¤
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻŦā§āĻ§āĻ¤āĻž āĻ¨āĻŋāĻŦā§āĻĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻā§ ns-3 āĻā§āĻĄ
(āĻĻā§āĻā§āĻ¨ ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ˛āĻŋāĻĄā§āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛).
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
ns-3 āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¸āĻŋāĻāĻĄā§-āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° (PRNG) āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻā§āĻ°ā§āĻ¤āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž
āĻāĻ PRNG āĻāĻ°, āĻāĻŦāĻ āĻāĻāĻŋ āĻ¤āĻžāĻ° āĻāĻŦā§āĻˇāĻŖāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¤ā§āĨ¤
āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
ns-3 āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns3::RandomVariable Stream.
¡ āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ, ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°; āĻā§āĻ¨ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻ¤āĻž āĻāĻā§ āĻ¯āĻĻāĻŋ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°āĻžāĻ¨ āĻāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻŦā§ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻŦā§āĻ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž
āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
¡ āĻāĻŋāĻ¤āĻ°ā§ ns-3.3 āĻāĻŦāĻ āĻāĻā§, ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§; āĻāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻšā§āĻ¨
āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¨ā§āĻ¤āĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ ns-3.4.
¡ āĻāĻŋāĻ¤āĻ°ā§ ns-3.14 āĻāĻŦāĻ āĻāĻā§, ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ°âā§āĻ¯āĻžāĻĒāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
ns3::RandomVariableāĨ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ ns-3.15, āĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
ns3::RandomVariable Stream; āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻĻā§āĻŽ-āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¨ā§āĻ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻā§āĻ¨āĨ¤
¡ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ°āĻžāĻ¨ āĻā§āĻĄāĻŧā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻ¤āĻž āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻŦāĻž āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻ˛ āĻāĻ°ā§āĻ¨
ns3::RngSeedManager::SetSeed() āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§; āĻ¸āĻā§āĻā§ āĻāĻāĻāĻŋ āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§
āĻāĻāĻ āĻŦā§āĻ, āĻāĻ˛ ns3::RngSeedManager::SetRun() āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§; āĻĻā§āĻāĻž
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛.
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ RandomVariable Stream āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ ns-3 āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¯ā§āĻā§āĻ¤ āĻāĻā§
āĻāĻ° āĻ¸āĻžāĻĨā§; āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻŦā§āĻ (āĻāĻā§āĻ° āĻŦā§āĻ˛ā§āĻ);
¡ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ āĻĻā§āĻļā§āĻ¯ā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻ°āĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¨ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻš
āĻ¸āĻāĻā§āĻ¯āĻž, āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž:
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛.
āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻĒāĻĄāĻŧā§āĻ¨ ns-3.
āĻĒāĻāĻā§āĻŽāĻŋ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ āĻ¨ā§āĻ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§; āĻāĻ āĻāĻŦā§āĻˇāĻŖāĻžāĻ¯āĻŧ āĻĻā§āĻāĻž āĻā§āĻā§ āĻ¯ā§ āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋāĻ¤ā§ CPU-āĻāĻ° 50% āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¤ā§ āĻšāĻŦā§
(āĻāĻĻā§āĻŽ) āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻŦāĻžāĻšāĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻĻā§āĻŦāĻŋāĻā§āĻ¨ āĻšāĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻŽāĻ¨:
¡ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻŦā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŋāĻ¨āĻž
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ āĻŦāĻž āĻ¨āĻž,
¡ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĨā§āĻā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨
āĻāĻ°ā§āĻāĻāĻŋ, āĻāĻŦāĻ
āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ¸āĻžāĻāĻā§āĻ˛ āĻšāĻ¤ā§ āĻāĻ¤āĻā§āĻˇāĻŖ āĻ˛āĻžāĻā§
āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻĻ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦ: āĻāĻāĻāĻŋ RNG (āĻāĻĻā§āĻŽ) āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻā§āĻ°āĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ āĻā§āĻ°āĻŽāĻāĻŋāĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯āĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻā§āĻ° āĻ˛āĻŽā§āĻŦāĻž or āĻāĻžāĻ˛, āĻāĻ°āĻĒāĻ° āĻāĻŋ
RNG āĻ¨āĻŋāĻā§āĻ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻšāĻŦā§. āĻāĻ āĻā§āĻ°āĻŽāĻāĻŋ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ. āĻāĻāĻāĻŋ
āĻāĻāĻāĻŋ āĻāĻ°āĻāĻ¨āĻāĻŋāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻšāĻ˛ āĻāĻ°āĻāĻ¨āĻāĻŋ āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻ˛āĻā§āĻ¨ āĻāĻĒāĻ¸ā§āĻ āĻŦāĻž āĻŦā§āĻ˛āĻāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ
RNG āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛ N āĻāĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯, āĻāĻŦāĻ āĻāĻ RNG āĻĨā§āĻā§ āĻĻā§āĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ
āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ°āĻĨāĻŽ N/2 āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ N/2 āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻžāĻ¨ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻ˛ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻ§āĻžāĻ°āĻž āĻ āĻ¸āĻāĻ˛āĻā§āĻ¨āĨ¤ āĻāĻāĻāĻāĻžāĻŦā§,
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ āĻ¸āĻāĻ˛āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ. āĻĻā§āĻ¯
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ RNG āĻāĻļāĻž āĻāĻ°āĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻā§āĻŽ-āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻāĻā§āĻ°ā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯, āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻāĻŦāĻ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽā§ āĻāĻāĻāĻŋ āĻĻāĻā§āĻˇ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻāĻ°ā§āĨ¤
ns-3 āĻāĻāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-2: MRG32k3a
Pierre L'Ecuyer āĻĨā§āĻā§ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĨ¤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
http://www.iro.umontreal.ca/~lecuyer/myftp/papers/streams00.pdf. MRG32k3a āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°
1.8x10^{19} āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§
2.3x10^{15} āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻŋāĻ°āĻŋāĻ¯āĻŧāĻĄ āĻĨāĻžāĻā§ (āĻ āĻ°ā§āĻĨāĻžāĻ¤, āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž
āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻā§) 7.6x10^{22}āĨ¤ āĻĒā§āĻ°ā§ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛ āĻšāĻ˛ 3.1x10^{57}āĨ¤
āĻļā§āĻ°ā§āĻŖā§ ns3::RandomVariable Stream āĻāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸
āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ¯āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨ ns3::UniformRandomVariable,
ns3::ExponentialRandomVariable, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°, āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ°
āĻāĻĻāĻ°ā§āĻļ ns3::RandomVariable Stream āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤āĻāĻžāĻŦā§ āĻāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ "āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛" RNG āĻāĻā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§,
āĻĒā§āĻ°āĻ¤āĻŋ ns3::RandomVariable Stream āĻ āĻā§āĻāĻŋāĻ¤ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽā§āĻ˛ āĻ¸ā§āĻ°ā§āĻ¤ āĻĨā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻšāĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ RandomVariable āĻāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻĨāĻžāĻāĻ¤ā§ āĻĻā§āĻāĻ¯āĻŧāĻž
(āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻŦā§āĻāĻ¯ā§āĻā§āĻ¤) RNG. āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ°āĻž āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž āĻ¯ā§ āĻāĻŋāĻ¨ā§āĻ¨
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻ°āĻŽāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻšā§āĻ¨ āĻšāĻŦā§; āĻ¤āĻžāĻ, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻ RNG āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻāĻŦāĻ
āĻāĻāĻŋ āĻĨā§āĻā§ āĻ¸ā§āĻ°ā§āĻ¤ āĻāĻŦāĻ āĻāĻĒāĻ§āĻžāĻ°āĻžāĨ¤
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
ns-3 āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ. āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ ns3::āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻ āĻŋāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž CreateObject<> āĻĒāĻĻā§āĻ§āĻ¤āĻŋ,
āĻ¯ā§āĻŽāĻ¨:
Ptr x = CreateObject ();
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻ āĻŦāĻā§āĻā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻ˛ āĻāĻ°ā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§āĻŽāĻ¨:
myRandomNo = x->GetInteger ();
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻ āĻŽāĻ¤ āĻāĻŋāĻā§ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨:
myRandomNo = UniformRandomVariable().GetInteger();
āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻŦā§, āĻāĻžāĻ°āĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§
āĻāĻŋāĻā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ¯ā§ āĻāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻāĻ¨ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ.
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻŦāĻžāĻāĻŋ āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻāĻāĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻāĻĻā§āĻŽ-āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž, āĻāĻŦāĻ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦā§āĻ āĻāĻŋāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ āĻŦāĻā§āĻā§āĻāĨ¤
seeding āĻāĻŦāĻ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ
ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ āĻŦāĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ
ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻāĻ āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ, āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§,
āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻ āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ, ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ āĻāĻŦāĻ āĻ°āĻžāĻ¨ āĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻŽāĻžāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĻā§āĻ ns3::āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ¯āĻžāĻ˛ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ: g_rngSeed āĻāĻŦāĻ g_rngRun.
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻŦāĻŋāĻāĻžāĻ°ā§āĻ° āĻā§āĻ°āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§
āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ°āĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻŦā§āĻļā§āĻŦāĻŋāĻ āĻŦā§āĻ āĻāĻŦāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛āĻžāĻ¨, āĻŦāĻž RNG āĻāĻ° āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ āĻā§āĻ°āĻ¸āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻž
āĻ°āĻžāĻ¨ āĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§ ns3::RngSeedManager āĻ¸āĻŋāĻĄāĻŋāĻ āĻāĻŦāĻ āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻāĻ°āĻŖ āĻāĻ āĻ¸āĻŋāĻĄāĻŋāĻ āĻāĻŦāĻ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¸ā§āĻā§āĻ āĻ¸ā§āĻāĻŋāĻ āĻā§āĻ¨ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻāĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ
āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻ¯ā§āĻŽāĻ¨:
RngSeedManager::SetSeed (3); // āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĨā§āĻā§ āĻŦā§āĻ 1 āĻĨā§āĻā§ 3 āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§
RngSeedManager::SetRun (7); // āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĨā§āĻā§ 1 āĻĨā§āĻā§ 7 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§
// āĻāĻāĻ¨, āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
Ptr x = CreateObject ();
Ptr y = CreateObject ();
...
āĻā§āĻ¨āĻāĻŋ āĻāĻžāĻ˛, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻŦāĻž āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¸ā§āĻā§āĻāĻā§ āĻ āĻā§āĻ°āĻ¸āĻ° āĻāĻ°āĻž? āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¨ā§āĻ
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻžāĻ¯āĻŧ
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻž āĻšāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻā§āĻˇāĻŽāĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž
RNG āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¸āĻžāĻŽāĻ°ā§āĻĨā§āĻ¯ āĻĨā§āĻā§ āĻā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻŦāĻšā§
āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ°āĻžāĻ¨ of āĻĻā§āĻ¯ āĻāĻāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĨ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻ°āĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĻāĻ¤āĻāĻžāĻŦā§ āĻāĻ ā§āĻ°
āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻŦāĻ āĻ āĻā§āĻ°āĻ¸āĻ° āĻšāĻāĻ¯āĻŧāĻž
āĻ°āĻžāĻ¨ āĻ¨āĻŽā§āĻŦāĻ°āĨ¤ āĻāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ 2.3x10^{15} āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻāĻ¨ā§āĻĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŦā§āĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨā§āĻā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ NS_GLOBAL_VALUE āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
$ NS_GLOBAL_VALUE="RngRun=3" ./waf --run āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ-āĻ¨āĻžāĻŽ
āĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ-āĻ˛āĻžāĻāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻž; āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻāĻāĻāĻŋ ns-3
GlobalValue āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻŋ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
$ ./waf --command-template="%s --RngRun=3" --āĻ°āĻžāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ-āĻ¨āĻžāĻŽ
āĻ āĻĨāĻŦāĻž, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ waf āĻāĻ° āĻŦāĻžāĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻā§āĻā§āĻ¨:
$ ./build/optimized/scratch/program-name --RngRun=3
āĻāĻĒāĻ°ā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ-āĻ˛āĻžāĻāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻļā§āĻ˛ āĻĨā§āĻā§ āĻĒā§āĻ°āĻā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°āĻžāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ RngRun āĻ¸ā§āĻāĻ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻļā§āĻ°ā§āĻŖā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻĻā§āĻŦ āĻāĻ˛āĻ. āĻāĻ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻāĻāĻ°āĻŖ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤
āĻā§āĻ˛āĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻāĻŋāĻ¤ā§āĻ° āĻāĻāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽāĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§ āĻāĻāĻāĻŋ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ PRNG āĻĨā§āĻā§ RNGāĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤, L'Ecuyer āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ 1.8x10^19 āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛
āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒ āĻāĻ°āĻžāĻ° āĻāĻā§ 7.6x10^22 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻļā§āĻ°ā§āĻŖā§ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯ āĻāĻĒāĻŋāĻāĻ
āĻ¨ā§āĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĻā§āĻ§ā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸
āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻŽā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŽāĻžāĻ¨āĨ¤
/ **
* \brief āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻŦāĻ¨ā§āĻāĻ¨ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
* \return āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻāĻŋāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŽāĻžāĻ¨
*/
āĻĄāĻŦāĻ˛ GetValue (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) const;
/ **
* \brief āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻŦāĻ¨ā§āĻāĻ¨ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
* \::GetValue() āĻāĻ° āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻāĻžāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
*/
uint32_t GetInteger (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) const;
āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ°ā§ āĻŦāĻĒāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ API āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻĻ of āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ§āĻ°āĻ¨ā§āĻ° āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns-3
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¨āĻžāĻāĻŋ āĻĒāĻĄāĻŧā§ src/core/model/random-variable-stream.h. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ.
¡ āĻā§āĻ˛āĻžāĻ¸ UniformRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ ConstantRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ¸ā§āĻāĻā§āĻ¯āĻŧ āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
¡ āĻā§āĻ˛āĻžāĻ¸ ParetoRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ WeibullRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
¡ āĻā§āĻ˛āĻžāĻ¸ LogNormalRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ GammaRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ ErlangRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋāĻā§āĻāĻžāĻāĻžāĻ° āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
¡ āĻā§āĻ˛āĻžāĻ¸ ZipfRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ ZetaRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ DeterministicRandomVariable
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻŽā§āĻ˛āĻ āĻ°âā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛
āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž of āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻŦāĻ¸ā§āĻ¤ā§
RandomVariableStream āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ ns3::āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
RandomVariableStream āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ ns-3 āĻā§āĻŖāĻžāĻŦāĻ˛ā§, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻ¯ā§
āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ ns-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻā§
WifiNetDevice-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻāĻžāĻ° āĻŽāĻĄā§āĻ˛:
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĒā§āĻ°āĻāĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻŽāĻĄā§āĻ˛::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::RandomPropagationDelayModel")
.SetParent ()
.AddConstructor ()
.AddAttribute ("āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛",
"āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯āĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ (āĻā§āĻ˛āĻŋ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤",
StringValue ("ns3::UniformRandomVariable"),
MakePointerAccessor (&RandomPropagationDelayModel::m_variable),
MakePointerChecker ())
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
āĻāĻāĻžāĻ¨ā§ ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¯āĻž
0 āĻĨā§āĻā§ 1 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻāĻŋ UniformRandomVariable) āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻŋāĻāĻ°āĻāĻ¨āĻāĻŋ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨ā§āĻ
āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° (āĻ¯ā§āĻŽāĻ¨, GNU āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻŋāĻĢāĻŋāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦāĻž Akaroa āĻĒā§āĻ¯āĻžāĻā§āĻ)āĨ¤ āĻĒā§āĻ¯āĻžāĻ āĻ¸ā§āĻŦāĻžāĻāĻ¤ āĻāĻžāĻ¨āĻžāĻ.
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĻā§āĻ¯ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¸āĻāĻā§āĻ¯āĻž
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ MRG32k3a āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° 2^64 āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ ns-3 āĻ, āĻāĻā§āĻ˛ā§
āĻ¨āĻ¤ā§āĻ¨ RandomVariableStream āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
GetValue() āĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ˛ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ RandomVariableStream āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻžāĻŽā§āĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛āĨ¤ āĻĻā§āĻ¯
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻā§āĻ¨ āĻĻāĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ
āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ¯āĻžāĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĨā§āĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻŦāĻž āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤
āĻāĻāĻāĻŋ āĻāĻāĻā§āĻ°āĻŋāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ°āĻžāĻāĻāĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻ āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻ°āĻžāĻāĻāĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦā§ āĻ¯ā§
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻžāĻ° āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
ns-3.15 āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ RandomVariableStream āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ā§ āĻ āĻŋāĻ āĻāĻ°ā§āĻ¨
āĻĒā§āĻ°āĻŦāĻžāĻš āĻāĻ āĻšāĻ˛ āĻĒā§āĻ°āĻŦāĻžāĻš āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ RandomVariableStream āĻāĻ° āĻ āĻāĻļāĨ¤
āĻāĻā§ āĻĨā§āĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ°āĻŽāĻā§ āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°ā§:
<---------------------------------------------------------------- -------------------------------------->
āĻ¸ā§āĻā§āĻ°ā§āĻŽ 0 āĻ¸ā§āĻā§āĻ°ā§āĻŽ (2^64 - 1)
āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻāĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻā§:
<---------------------------------------------------------------- -------------------------------------->
^ ^^ ^
| || |
āĻ¸ā§āĻā§āĻ°ā§āĻŽ 0 āĻ¸ā§āĻā§āĻ°ā§āĻŽ (2^63 - 1) āĻ¸ā§āĻā§āĻ°ā§āĻŽ 2^63 āĻ¸ā§āĻā§āĻ°ā§āĻŽ (2^64 - 1)
<- āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ -----------><- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ ----------------->
āĻĒā§āĻ°āĻĨāĻŽ 2^63 āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻĨāĻžāĻā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻļā§āĻˇ 2^63āĻāĻŋ āĻšāĻ¯āĻŧā§ˇ
2^63-1 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻļā§āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¸ā§āĻāĻāĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¨āĻŽā§āĻŦāĻ°ā§ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻāĻā§āĻāĻŋāĻ; āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
RandomVariableStream āĻ¯ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻŽāĻžāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨ā§āĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻ°āĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻĒā§āĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻŋāĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§ āĻāĻāĻāĻŋ RandomVariableStream āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§, āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨ āĻĒā§āĻ°āĻŦāĻžāĻš
āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ (-1 āĻāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻšāĻŦā§
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ)āĨ¤
āĻĒā§āĻ°āĻāĻžāĻļāĻ āĻ¤ā§āĻŽāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨, āĻ¤āĻāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻāĻāĻŋ āĻŽā§āĻ˛ āĻ āĻāĻļ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ
āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§āĻ¨ āĻ¤āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻŦāĻ˛āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§āĻ¨,
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¨āĻž āĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ RNG āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§āĻ¨,
āĻāĻŋāĻāĻžāĻŦā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻ°āĻžāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§,
¡ āĻŦāĻĄāĻŧ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻžāĻāĻā§āĻ˛ āĻāĻžāĻ˛āĻžāĻ¨āĻ¨āĻŋāĨ¤
āĻāĻāĻŋ āĻ¯āĻĨā§āĻˇā§āĻ āĻ¤āĻĨā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻŦā§āĻˇāĻā§āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ
āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻ¤āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨āĨ¤ āĻāĻāĻž āĻāĻŦā§āĻˇāĻā§āĻ°āĻ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ
āĻ¨āĻŋāĻā§āĻā§ āĻŦā§āĻāĻžāĻ¨ āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĻāĻ¤āĻāĻžāĻŦā§ āĻŦā§āĻ§ āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻāĻžāĻāĻ āĻā§āĻ¨ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻ¸ā§āĻĨāĻž āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻ¸āĻžāĻ°āĻžāĻāĻļ
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻ° āĻā§ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
¡ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ° āĻŦā§āĻ āĻŦāĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŦā§āĻ āĻ¨āĻŋāĻ¯āĻŧā§ āĻĻā§āĻĄāĻŧāĻžāĻā§āĻā§āĻ¨ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨; āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻĢāĻ˛ā§āĻ,
¡ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨,
āĻ¨āĻŋāĻā§āĻā§ āĻŦā§āĻāĻžāĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ°ā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻŽāĻžāĻ¨ āĻāĻāĻāĻā§āĻ¨ āĻ¨āĻž, āĻ¯āĻĻāĻŋ
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻā§āĻā§āĻ¨, āĻāĻŦāĻ
¡ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨, āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻĒāĻ°ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨
āĻ¨āĻŽā§āĻŦāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĨ¤
āĻāĻžāĻāĻž āĻāĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§
ns-3 āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§. āĻ¸āĻšāĻā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāĻ° āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻ° 32-āĻŦāĻŋāĻ āĻŦāĻž 64-āĻŦāĻŋāĻ āĻšā§āĻ¯āĻžāĻļ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻ¯āĻŧ murmur3, āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋāĻ° āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻžāĻ˛ā§
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻāĻŋ 64-āĻŦāĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ āĻĢāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĒā§āĻāĻ¨ā§āĻ¯āĻŧ FNV1a āĻšā§āĻ¯āĻžāĻļāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšā§āĻ¯āĻžāĻļ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° (āĻŦāĻž āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨) āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻž-āĻāĻāĻžāĻŽā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻā§
āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤
āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāĻ° āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻšā§āĻ¯āĻžāĻļ āĻŽāĻžāĻ¨ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛:
# "ns3/hash.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
char * āĻŦāĻžāĻĢāĻžāĻ° = ...
size_t āĻŦāĻžāĻĢāĻžāĻ°_size = ...
uint32_t buffer_hash = Hash32 ( āĻŦāĻžāĻĢāĻžāĻ°, āĻŦāĻžāĻĢāĻžāĻ°_āĻ¸āĻžāĻāĻ);
std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ s;
uint32_t string_hash = Hash32(s);
64-āĻŦāĻŋāĻ āĻšā§āĻ¯āĻžāĻļ āĻŽāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻšā§āĻ¯āĻžāĻļ
āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻšā§āĻ¯āĻžāĻļ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°ā§, āĻ¯ā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻ˛
āĻāĻāĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽā§āĻ° āĻšā§āĻ¯āĻžāĻļ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻž
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻŽā§āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤)
āĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻāĻž-āĻ¸āĻžāĻŽāĻ¨ā§āĻ°:
# "ns3/hash.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
char * āĻŦāĻžāĻĢāĻžāĻ°;
āĻ¸āĻžāĻāĻ_āĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ°_āĻ¸āĻžāĻāĻ;
āĻšāĻžāĻļāĻ° āĻšāĻžāĻļāĻžāĻ°; // āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻāĻ¨ā§āĻ¯ ( )
{
āĻŦāĻžāĻĢāĻžāĻ° = get_next_buffer ();
āĻšā§āĻ¯āĻžāĻļāĻžāĻ° (āĻŦāĻžāĻĢāĻžāĻ°, āĻŦāĻžāĻĢāĻžāĻ°_āĻ¸āĻžāĻāĻ);
}
uint32_t combined_hash = hasher.GetHash32 ();
āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ āĻšāĻžāĻļāĻžāĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻšā§āĻ¯āĻžāĻļāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¤ā§āĻŽāĻŋ āĻāĻžāĻ
āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° a āĻšāĻžāĻļāĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¨-āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšā§āĻ¯āĻžāĻļā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĢāĻžāĻāĻļāĻ¨), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻŦā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšā§āĻ¯āĻžāĻļā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¨āĻž, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°()
āĻĒā§āĻ°āĻĨāĻŽ:
hasher.clear ().GetHash32 (āĻŦāĻžāĻĢāĻžāĻ°, āĻŦāĻžāĻĢāĻžāĻ°_āĻ¸āĻžāĻāĻ);
āĻāĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻšā§āĻ¯āĻžāĻļ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° an āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻāĻž āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻ¯āĻŧ murmur3. FNV1a āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻšā§āĻ¯āĻžāĻļ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§
āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĢāĻžāĻāĻļāĻ¨, āĻāĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨:
āĻšā§āĻ¯āĻžāĻļāĻžāĻ° āĻšā§āĻ¯āĻžāĻļāĻžāĻ° = āĻšāĻžāĻļāĻžāĻ° ( āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ());
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻāĻž āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ°
āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ foo āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸, āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšā§āĻ¯āĻžāĻļ- murmur3.h/.cc āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨:
āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻā§āĻˇāĻŖāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (.h) āĻāĻŦāĻ āĻ¸āĻāĻā§āĻāĻž (.cc) āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž
āĻšā§āĻ¯āĻžāĻļ::āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨.
¡ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻˇāĻŖāĻž āĻšā§āĻ¯āĻžāĻļ (āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻšā§āĻ¯āĻžāĻļ- murmur3.h āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
¡ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻā§āĻĄā§, āĻ¤āĻžā§āĻā§āĻˇāĻŖāĻŋāĻ a āĻšāĻžāĻļāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻžāĻļāĻžāĻ°
(Ptr ())
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻšā§āĻ¯āĻžāĻļāĻĢ, āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻšā§āĻ¯āĻžāĻļ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸:
āĻšāĻžāĻļāĻ° āĻšāĻžāĻļāĻ°=
āĻšā§āĻ¯āĻžāĻļāĻžāĻ° ( āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (&āĻšāĻžāĻļāĻĢ));
āĻāĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻšā§āĻ¯āĻžāĻļāĻĢ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§:
typedef uint32_t (*Hash32Function_ptr) (const char *, const size_t);
typedef uint64_t (*Hash64Function_ptr) (const char *, const size_t);
āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻžāĻāĻž āĻāĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻšā§āĻ¯āĻžāĻļ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§:
¡ āĻĒāĻŋāĻāĻžāĻ° āĻāĻžāĻ¨āĻā§āĻ¸ā§āĻāĻŋ: http://www.strchr.com
¡ āĻāĻ°āĻžāĻļ āĻĒāĻžāĻ°ā§āĻā§: http://www.partow.net/programming/hashfunctions/index.html
¡ SMHasher: http://code.google.com/p/smhasher/
¡ āĻ¸āĻžāĻ¨āĻŽāĻžāĻ¯āĻŧā§āĻ¸: http://www.sanmayce.com/Fastest_Hash/index.html
āĻāĻāĻ¨āĻžāĻŦāĻ˛ā§ āĻāĻŦāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
ns-3 āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨-āĻāĻā§āĻ¨ā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°āĨ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤āĻāĻžāĻŦā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻ°āĻžāĻā§
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤ āĻāĻ° āĻāĻžāĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻšāĻ˛ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĨ¤ āĻāĻ° āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻāĻāĻŦāĻžāĻ°
āĻāĻāĻāĻŋ āĻāĻāĻ¨āĻž āĻāĻā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°āĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻā§ āĻāĻ˛ā§ āĻ¯āĻžāĻŦā§ (āĻ āĻĨāĻŦāĻž āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻŦā§
āĻāĻā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻ°āĻ āĻāĻā§āĻ¨ā§āĻ)āĨ¤ āĻ¯āĻĻāĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ
"100 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ" āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻ "200 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ" āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž,
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ 100 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻĨā§āĻā§ 200 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ (āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ°) āĻ˛āĻžāĻĢāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻ¨āĻž āĻāĻžāĻ˛āĻžāĻ¨āĨ¤ āĻāĻāĻŋ "āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨-āĻāĻā§āĻ¨ā§āĻ" āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ āĻ¸āĻŦ āĻāĻāĻ¤ā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŋāĻā§ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
1. āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻ¨āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž
2. āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻž āĻāĻŦāĻ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ā§ˇ
3. āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ
4. āĻāĻāĻ¨āĻž āĻ¨āĻŋāĻā§āĻĻā§āĻ°
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ° āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§ (āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°, āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§,
āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻ¨āĻž) āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨āĻž
āĻĨā§āĻā§ be āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
āĻāĻā§āĻ¨ā§āĻ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻŋāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻšāĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĨ¤ āĻāĻāĻĻāĻž
āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻĻāĻŽā§āĻĒāĻ¤āĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ˛ā§āĻĒā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ (āĻāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻāĻžāĻ˛āĻžāĻ¨) āĻāĻāĻŦāĻžāĻ° āĻŽā§āĻ˛ āĻ˛ā§āĻĒ
āĻāĻ˛āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻāĻāĻŋ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻĨā§āĻā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻā§āĻ¨ā§āĻ āĻāĻžāĻ˛āĻžāĻŦā§
āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻ° āĻā§āĻ¨ā§ āĻāĻā§āĻ¨ā§āĻ āĻŦāĻžāĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻž
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ¸ā§āĻāĻĒ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻļāĻŋāĻĄāĻŋāĻāĻ˛* āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻžāĻ°āĨ¤
1. āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¸āĻš āĻāĻā§āĻ¨ā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻĻā§āĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ C++ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻˇāĻŖāĻž āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻŦāĻ¨ā§āĻ¯āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ C++ āĻāĻā§āĻ¨ā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻŦā§āĻāĻŋāĻ¤ā§āĻ°ā§āĻ¯āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻ¤ā§
āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ 10 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¨ā§āĻ, āĻāĻŦāĻ āĻāĻāĻāĻŋ C++ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻž āĻĢāĻžāĻāĻļāĻ¨ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° (int arg0, int arg1)
{
std::cout << "āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻā§ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻĄāĻžāĻāĻž āĻšāĻ¯āĻŧ arg0=" << arg0 << " āĻāĻŦāĻ
arg1=" << arg1 << std::endl;
}
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻļāĻŋāĻĄāĻŋāĻāĻ˛(āĻ¸ā§āĻā§āĻ¨ā§āĻĄ(10), &āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°, 10, 5);
āĻ¯āĻž āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§:
āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ arg0=10 āĻāĻŦāĻ arg1=5 āĻ¸āĻš āĻāĻ˛ ââāĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ C++ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻāĻā§āĻ˛āĻŋ C++ āĻ āĻ¸ā§āĻŦāĻā§āĻ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻ¸ā§āĻ¤ā§:
āĻĨā§āĻā§ be āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨: āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¨ā§āĻ:
¡ ns-3 āĻ¤āĻĢāĻ¸āĻŋāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻāĻŋāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž
5 āĻāĻŋāĻ°āĻ āĻāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¨āĻŋāĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ°āĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§, āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ
¡ 'āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ-āĻŦāĻžāĻāĻ¨ā§āĻĄ āĻĢāĻžāĻāĻļāĻ¨āĻ¸' āĻļāĻŦā§āĻĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĒāĻžāĻ āĻāĻ°āĻž āĻāĻŋāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°:: āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
2. āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨
āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° API āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻāĻž
āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ°ā§āĻĒ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ (āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĨā§āĻā§ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĨā§āĻā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž):
¡ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻā§āĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻŽā§āĻ¯āĻŧāĻžāĻĻ āĻļā§āĻˇ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¤āĻžāĻ°āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĨ¤
¡ ScheduleNow āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻ¸āĻŽāĻ¯āĻŧ: āĻ¤āĻžāĻ°āĻž _after_ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻā§āĻ¨ā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻļā§āĻˇ āĻšāĻŦā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ _for_the
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
¡ ScheduleDestroy āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻļāĻžāĻāĻĄāĻžāĻāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻ˛āĻŋāĻ¨āĻāĻĒ āĻāĻ°āĻ¤ā§: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ˛ āĻāĻ°āĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ 'āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻ¯āĻŧ' āĻāĻā§āĻ¨ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ¨āĻˇā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
3. āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž
āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§, āĻ¸āĻā§āĻā§ āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻž āĻĒā§āĻ°āĻ¸āĻā§āĻāĨ¤ āĻāĻ āĻāĻŋ
āĻāĻ° āĻ āĻ°ā§āĻĨ āĻāĻŋ?
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻļāĻŋāĻĄāĻŋāĻāĻ˛ (āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻžāĻ°āĻŖ āĻ āĻ¸āĻŽāĻ¯āĻŧ, MEM mem_ptr, OBJ obj);
āĻŦāĻ¨āĻžāĻŽ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::ScheduleWithContext (uint32_t āĻĒā§āĻ°āĻ¸āĻā§āĻ, āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨āĻ¸ā§āĻ & āĻ¸āĻŽāĻ¯āĻŧ, MEM mem_ptr, OBJ obj);
āĻĒāĻžāĻ āĻ āĻ¯āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¨-āĻ¤ā§āĻā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻļā§āĻ°āĻŽ āĻŦāĻŋāĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨
āĻ¸āĻšāĻ āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻ¤ā§ ns-3 āĻ˛āĻāĻŋāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻžāĻ¨ āĻāĻžāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§
āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻ āĻ˛āĻāĻŋāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻ
'āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§' āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻ¸āĻ˛ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻŋ Simulator::GetContext āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§
'āĻĒā§āĻ°āĻ¸āĻā§āĻ' (āĻāĻāĻāĻŋ 32-āĻŦāĻŋāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž) āĻ¯ā§āĻā§āĻ¤ āĻāĻŦāĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§-āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšā§ āĻāĻā§āĻ¨ā§āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤āĨ¤ āĻāĻŋāĻ¤āĻ°ā§
āĻāĻŋāĻā§ āĻŦāĻŋāĻ°āĻ˛ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻāĻŋ
'āĻĒā§āĻ°āĻ¸āĻā§āĻ' 0xffffffff āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§, āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§, āĻāĻŦāĻ ScheduleNow āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§-āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšā§ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻĒāĻ°ā§ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻĨā§āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ°āĻŽāĻŖ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ°ā§āĻāĻāĻŋ, āĻāĻ āĻāĻāĻ°āĻŖāĻāĻŋ āĻ āĻŦāĻžāĻā§āĻāĻŋāĻ¤ āĻāĻžāĻ°āĻŖ āĻ āĻā§āĻ¯āĻ°ā§āĻĨāĻ¨āĻž āĻ āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻ
āĻ°āĻŋāĻ¸āĻŋāĻāĻŋāĻ āĻ¨ā§āĻĄā§āĻ° āĻ¯ā§, āĻ¸ā§āĻ¨ā§āĻĄāĻŋāĻ āĻ¨ā§āĻĄ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§: ScheduleWithContext āĻ¯āĻž āĻāĻāĻāĻ¨āĻā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ°āĻŋāĻ¸āĻŋāĻāĻŋāĻ āĻ¨ā§āĻĄā§āĻ° āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋāĨ¤
XXX: āĻā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻŋāĻā§ āĻā§āĻŦ āĻŦāĻŋāĻ°āĻ˛ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒā§āĻ°āĻ¸āĻā§āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻŦāĻž āĻŦā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻā§āĻ¨ā§āĻā§āĻ° (āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ) āĻ¤āĻžāĻ° āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ
NodeList āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž: āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, NodeList āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
ScheduleWithContext āĻāĻ āĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ 'āĻ¸ā§āĻāĻ¨āĻž' āĻāĻā§āĻ¨ā§āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻā§āĻ¨ā§āĻ 'āĻ¸ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨'
āĻāĻāĻāĻžāĻŦā§ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¸āĻš āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻāĻŋāĻ¤ā§āĻ°ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻāĻāĻŋ āĻ¨ā§āĻĄ::āĻāĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž 'āĻāĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ' āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ°ā§
āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ DoInitialize āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ āĻāĻ°ā§ āĻāĻā§āĻ¨ā§āĻāĨ¤ āĻĻā§āĻ¯
DoInitialize āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻā§āĻ¤ā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§
āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸) āĻāĻŋāĻā§ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻŦā§ (āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ Application::StartApplication) āĻ¯āĻž
āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻŦā§ āĻ¯āĻž āĻĒāĻžāĻ˛āĻž āĻāĻ°ā§ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻāĻ°āĻŦā§
āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻāĻ¨āĻžāĨ¤
āĻ¨ā§āĻ:
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ˛ āĻāĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻā§āĻĄāĻŧā§ DoInitialize āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ ScheduleWithContext āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻāĻāĻĄāĻŋ āĻāĻ° āĻŦāĻžāĻāĻ°ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§
āĻ˛āĻāĻŋāĻ: āĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ ns-3 āĻāĻ° āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻļāĻžāĻāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻŽāĻžāĻ˛ā§āĻāĻŋāĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĨā§āĻ°ā§āĻĄāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::* āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸āĻā§āĻāĻāĻŋ āĻā§ āĻ¤āĻž āĻāĻžāĻ¨ā§ āĻ¨āĻž: āĻ¤āĻžāĻ°āĻž āĻā§āĻŦāĻ˛ āĻāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§
āĻāĻĒāĻ¨āĻŋ ScheduleWithContext āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¤āĻž āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻšāĻ˛ā§ āĻāĻĒāĻ˛āĻŦā§āĻ§
āĻāĻā§āĻ¨ā§āĻ ::GetContext āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::* āĻāĻ° āĻāĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
ns-3-āĻ, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸āĻā§āĻāĻāĻŋāĻā§ āĻ¨ā§āĻĄā§āĻ° āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻ¯āĻž
āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§āĻ ScheduleWithContext-āĻ āĻāĻ˛ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ
ns3::āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻĄ i āĻĨā§āĻā§ āĻ¨ā§āĻĄ j āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž
āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻāĻā§āĻ¨ā§āĻāĻāĻŋ āĻ¯āĻž āĻ¨ā§āĻĄ j āĻ āĻāĻ˛āĻŦā§ āĻ¤āĻžāĻ° āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻāĻā§āĨ¤
āĻ¸āĻŽāĻ¯āĻŧ
āĻĨā§āĻā§ be āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§
āĻĨā§āĻā§ be āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸
āĻāĻŋāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ ns-3 āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻŦāĻžāĻāĻ§āĻžāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤
āĻā§āĻĄ āĻā§āĻĄāĻŧā§: the ns-3 āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ. āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻŋāĻā§ āĻ āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ, āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻāĻŦāĻ āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸ āĻĒā§āĻ°ā§āĻ°āĻŖāĻž
āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄā§āĻ˛ A āĻāĻŦāĻ B āĻāĻā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ā§ˇ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤āĻĨā§āĻ¯āĨ¤ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ
A āĻāĻŦāĻ B āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻā§āĻāĻžāĻ¨ā§ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻžāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ:
āĻļā§āĻ°ā§āĻŖā§āĻāĻā§āĻˇā§ {
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
void ReceiveInput ( // āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ);
...
}
(āĻ āĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ :)
āĻā§āĻ˛āĻžāĻ¸ B {
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
void DoSomething (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
...
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
A* a_instance; // āĻāĻāĻāĻŋ āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ
}
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
B::Do Something()
{
// āĻāĻāĻāĻŋ_āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻ˛ā§āĻ¨ āĻ¯ā§ āĻāĻŋāĻā§ āĻāĻā§āĻā§
a_instance->āĻ°āĻŋāĻ¸āĻŋāĻāĻāĻ¨āĻĒā§āĻ (// āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°);
...
}
āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻāĻŋ A āĻāĻŦāĻ B āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§
āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻ¤ā§ (āĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĨāĻžāĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻ¸āĻāĻāĻ˛āĻ¨ āĻāĻāĻ¨āĻŋāĻ) āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž; āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻĻā§āĻļā§āĻ¯ā§,
B-āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ C āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻšāĻŦā§, B-āĻāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻšāĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ c_instance āĻāĻŦāĻ āĻ¤āĻžāĻ āĻā§āĻˇāĻŖāĻž āĻ¸āĻšāĻā§āĻ āĻŦā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨ā§āĻļāĻāĻ¸ āĻļāĻā§āĻ¤āĻŋ
āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻā§āĻ°āĻžāĻĢā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻŦāĻ˛āĻžāĻ° āĻ āĻĒā§āĻā§āĻˇāĻž āĻ°āĻžāĻā§ āĻ¨āĻž āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻļāĻā§āĻ¤ āĻĨāĻžāĻā§
āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻŽāĻĄā§āĻ˛ āĻāĻ°ā§ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°
āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻ¸āĻŽāĻ¯āĻŧā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŽ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĨ¤
āĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻŦā§āĻˇāĻŖāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻ¯āĻŧ, āĻŦāĻ°āĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻšāĻ¯āĻŧā§āĻā§
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻ¤ā§āĻ¸, āĻ¯āĻāĻ¨ āĻāĻŦā§āĻˇāĻāĻ°āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻ¯ā§āĻŽāĻ¨ āĻ¤āĻžāĻ°āĻž āĻāĻŦā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤)āĨ¤ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻŋāĻ¨āĻŋ TCP āĻāĻŦāĻ IP āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ IPsec āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻŦāĻ˛ā§āĻ¯āĻŧāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨:
------------ -----------
| TCP | | TCP |
------------ -----------
| āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ -> |
----------- -----------
| āĻāĻāĻĒāĻŋ | | IPsec |
----------- -----------
|
-----------
| āĻāĻāĻĒāĻŋ |
-----------
āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻā§āĻĄā§ āĻšāĻžāĻ°ā§āĻĄ āĻā§āĻĄ āĻāĻ°ā§ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻ āĻāĻāĻĒāĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻĨāĻž āĻŦāĻ˛ā§
āĻāĻĒāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻšā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻāĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸ āĻĒāĻāĻā§āĻŽāĻŋ
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨:
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĒāĻžāĻ āĻāĻ°āĻž āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻŽā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻāĻāĻāĻ¨āĻā§ āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¤āĻž āĻšāĻ˛ a āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ.
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ āĻāĻļāĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž (āĻŦāĻž C++ āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ)
āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨ā§āĻ¤āĻāĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ -- āĻāĻĒāĻ¨āĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ°āĻŖ āĻāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ. āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻāĻŋāĻā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻ˛āĻžāĻĻāĻž āĻ¨āĻ¯āĻŧ
āĻ¯ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻ āĻŦāĻā§āĻā§āĻāĨ¤
āĻ¸āĻŋ-āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ¨ā§āĻ¨āĻŋāĻāĻžāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻāĻāĻāĻŋ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻĢāĻžāĻāĻļāĻ¨-āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨āĻŋāĻ-āĻāĻ¨āĻāĻŋāĻāĻžāĻ° (PFI)āĨ¤ āĻāĻāĻāĻŋ PFI āĻāĻ int āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ
āĻ¯ā§āĻŽāĻ¨ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
int (*pfi)(int arg) = 0;
āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĨā§āĻā§ āĻĒā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¨āĻžāĻŽ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻĒāĻŋāĻāĻĢāĻāĻ āĻ¯ā§āĻāĻŋ āĻŽāĻžāĻ¨ 0 āĻ āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻā§ āĻ āĻ°ā§āĻĨāĻĒā§āĻ°ā§āĻŖ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¸āĻš āĻĢāĻžāĻāĻļāĻ¨āĨ¤ āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§:
int MyFunction (int arg) {}
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻĨāĻžāĻā§, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§āĻŽāĻ¨:
pfi = MyFunction;
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻ˛ā§āĻ° āĻāĻ°āĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻŽā§āĻ˛āĻ āĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻāĻžāĻŦā§ MyFunction āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
int āĻĢāĻ˛āĻžāĻĢāĻ˛ = (*pfi) (1234);
āĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¤āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°āĻŖ āĻĻā§āĻā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻĄāĻŋāĻ°ā§āĻĢāĻžāĻ° āĻāĻ°āĻā§āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° dereference āĻāĻžāĻ. āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ¤āĻŦā§, āĻ˛ā§āĻā§āĻ°āĻž āĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§āĻ¯āĻŧ
āĻ¸āĻ¤ā§āĻ¯ āĻ¯ā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻāĻžāĻ¨ā§ āĻāĻŋ āĻāĻāĻā§ āĻāĻŦāĻ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§:
int āĻĢāĻ˛āĻžāĻĢāĻ˛ = pfi (1234);
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŽāĻžāĻ¨ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻŽā§āĻ¨ā§ āĻāĻ˛ā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻŽāĻ¤ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¤āĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻŦā§āĻ¨
āĻāĻ āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ°ā§āĻŽ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻ˛ āĻĒāĻŋāĻāĻ¨ā§ āĻ¤ā§āĻŽāĻžāĻā§ āĻāĻžāĻ¨āĻžāĻ¤ā§
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ˛ āĻāĻ°ā§āĨ¤
C++ āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻāĻŋāĻ˛āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĒāĻ°ā§āĻ° PFI āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻŽāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ int (PMI) āĻĢā§āĻ°āĻ¤ āĻāĻāĻāĻŋ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻā§
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ int (PFI) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻā§āĻˇāĻŖāĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻĻā§āĻāĻžāĻ¯āĻŧ:
int (MyClass::*pmi) (int arg) = 0;
āĻāĻ āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻā§āĻˇāĻŖāĻž āĻĒāĻŋāĻāĻŽāĻāĻ āĻ āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¨āĻžāĻŽā§ āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§āĻā§
āĻĒāĻŋāĻāĻĢāĻāĻ. āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻ˛ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻāĻāĻ¨ āĻ āĻŦāĻļā§āĻ¯āĻ
āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§āĻ¨:
āĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸ {
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
int MyMethod (int arg);
};
āĻāĻ āĻŦāĻ°ā§āĻ āĻā§āĻˇāĻŖāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻˇāĻŋāĻ¤ā§, āĻā§āĻ āĻ¤āĻāĻ¨ āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻāĻŋāĻā§ āĻāĻāĻžāĻŦā§ āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻŦā§:
pmi = &MyClass::MyMethod;
āĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻāĻžāĻ°ā§ āĻā§āĻĄā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§, āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°ā§
āĻĒāĻ°ā§āĻā§āĻˇ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ a āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻāĻ āĻā§āĻ°ā§,
āĻŽāĻžāĻ¨ā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ MyClass āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ āĻŋāĻ
āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻāĻžāĻŦā§ āĻāĻ˛ āĻāĻ°āĻž (āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻ¨ā§ āĻāĻ°ā§āĻ¨):
int (MyClass::*pmi) (int arg) = 0; // āĻāĻāĻāĻŋ PMI āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§āĻ¨
pmi = &MyClass::MyMethod; // āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻā§āĻĄā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨
āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸; // āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
(myClass.*pmi) (1234); // āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ ptr āĻ¸āĻā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ˛
āĻ āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ C āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¯āĻž āĻāĻ°āĻŦā§ āĻāĻ˛ āĻĒāĻŋāĻāĻ¨ā§ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¸āĻšāĻāĻŦā§āĻ§ā§āĻ¯ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨
āĻā§āĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ PMI āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻžāĨ¤ āĻŽāĻĄāĻŋāĻāĻ˛
āĻļā§āĻ§ā§ āĻāĻ°āĻŦā§:
(*objectPtr.*pmi) (1234);
āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻā§āĻ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŋ āĻĻā§āĻ¯ āĻŦāĻŋāĻ¨ā§āĻĻā§? āĻ¨āĻžāĻŽāĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻāĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤ āĻā§āĻ¨ āĻ¨āĻž
āĻļā§āĻ§ā§ āĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨, āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ°ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§->āĻĒāĻĻā§āĻ§āĻ¤āĻŋ(1234) in
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻĄ? āĻāĻ āĻ āĻŦāĻŋāĻāĻ˛ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž. āĻāĻŋ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ āĻāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻā§ āĻāĻ˛āĻŋāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĄāĻŋāĻāĻĒāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻ
āĻāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨.
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻ˛ 1960 āĻāĻ° āĻĻāĻļāĻā§ āĻāĻŦāĻŋāĻˇā§āĻā§āĻ¤ āĻāĻŋāĻā§āĻ° āĻŦā§āĻĻā§āĻ§āĻŋ āĻ¯āĻžāĻā§ āĻŦāĻ¨ā§āĻ§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻž
āĻŽā§āĻ˛āĻ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻāĻĄ-āĻāĻĒ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛, āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŋāĻā§ āĻ°āĻžāĻā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§āĨ¤
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĻā§āĻāĻŋ āĻ āĻāĻļ āĻĨāĻžāĻā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻāĻļ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ āĻāĻļ, āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤āĨ¤
āĻāĻ˛āĻŋāĻ āĻā§āĻĄ (āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ) āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻŦā§
āĻ āĻĒāĻžāĻ°ā§āĻāĻ° () āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ°āĻŖ. āĻ¨āĻžāĻŽāĻ āĻā§āĻĄ (
āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĄāĻžāĻāĻ¤ā§ āĻāĻžāĻ¯āĻŧ) āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻĻā§āĻ¯ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° () āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻ¨āĻŋāĻˇā§āĻ -āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻāĻāĻžāĻ¯āĻŧ
āĻāĻĒāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĨ¤
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻāĻ° āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻ¸āĻš āĻ āĻĒāĻžāĻ°ā§āĻāĻ° () āĻ¤ā§āĻ°āĻŋ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻā§āĻĄ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻŦāĻŋāĻļā§āĻˇ āĻā§āĻĄ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ (āĻāĻ˛āĻŋāĻ) āĻāĻžāĻ˛āĻžāĻŦā§
āĻā§āĻĄ)āĨ¤
āĻāĻ˛āĻŋāĻ āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨ā§āĻŦā§, āĻ¤āĻžāĻ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻžāĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§
āĻ¯ā§ āĻāĻ˛āĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻžāĻāĻĒ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻž decoupled āĻšāĻ¯āĻŧ
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻāĻ˛āĻŋāĻ āĻā§āĻĄ āĻĨā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻšāĻ˛ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĨ¤
āĻ¯āĻž āĻāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ āĻāĻļ āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§
āĻĢāĻžāĻāĻļāĻ¨:
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ
āĻā§āĻ˛āĻžāĻ¸ āĻĢāĻžāĻāĻļāĻ¨
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ int operator() (T arg) = 0;
};
āĻāĻ˛āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻāĻļāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ:
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ
āĻā§āĻ˛āĻžāĻ¸ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
SpecificFunctor(T*p, int (T::*_pmi)(ARG arg))
{
m_p = p;
m_pmi = _pmi;
}
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ int āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() (ARG arg)
{
(*m_p.*m_pmi)(arg);
}
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
int (T::*m_pmi)(ARG arg);
T* m_p;
};
āĻāĻāĻžāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
āĻā§āĻ˛āĻžāĻ¸ āĻ
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
A (int a0): a (a0) {}
int āĻšā§āĻ¯āĻžāĻ˛ā§ (int b0)
{
std::cout << "āĻ āĻĨā§āĻā§ āĻšā§āĻ¯āĻžāĻ˛ā§, a = " << a << " b0 = " << b0 << std::endl;
}
int a;
};
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨ ()
{
A a(ā§¨ā§Ļā§§ā§§);
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ sf(&a, &A::āĻšā§āĻ¯āĻžāĻ˛ā§);
sf(ā§¨ā§Ļā§§ā§§);
}
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨:
āĻāĻā§āĻ° āĻā§āĻĄāĻāĻŋ āĻāĻ¸āĻ˛ ns-3 āĻā§āĻĄ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻā§āĻĄ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤
āĻāĻĄāĻŧāĻŋāĻ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋāĻā§ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ°ā§ āĻ¨āĻž
ns-3 āĻāĻžāĻā§āĻ° āĻ¯ā§ āĻā§āĻ¨ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻ āĻā§āĻĄāĻāĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻļāĻž āĻāĻ°ā§āĻ¨āĨ¤
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§ āĻĻā§āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ m_p āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻšāĻ˛
āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ m_pmi āĻšāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯āĻžāĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĨāĻžāĻā§
āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻ.
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻā§āĻ°ā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°ā§
C++ PMI āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĨ¤
āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻ āĻ¤āĻāĻ¨ āĻāĻŋāĻā§ āĻŽāĻĄā§āĻ˛ āĻā§āĻĄ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻ¨ā§āĻ¯āĻŧ
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ:
void LibraryFunction (Functor functor);
āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦā§ āĻ¤āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻŦā§
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨:
āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸;
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ functor (&myclass, MyClass::MyMethod);
āĻāĻāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš āĻāĻ°ā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻāĻĒāĻ°
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻāĻ āĻŦāĻŋāĻļā§āĻˇ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§:
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ (āĻĢāĻžāĻāĻļāĻ¨ āĻĢāĻžāĻāĻļāĻ¨)
{
// āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨
āĻĢāĻžāĻāĻļāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĨā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĄāĻŋāĻāĻĒāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ Functor polymorphism āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĒāĻŋāĻāĻ ns-3 āĻĢāĻžāĻāĻļāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻŦāĻā§āĻā§āĻ-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĨ¤
āĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ API, C++ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻāĻžāĻāĻĒ-āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ; āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§
āĻāĻ˛āĻžāĻ° āĻāĻŦāĻ āĻāĻ˛ā§āĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻ āĻŋāĻ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻž
āĻ¤āĻžāĻ āĻĒā§āĻ°āĻĨāĻžāĻāĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°ā§ āĻāĻžāĻāĻĒ-āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ¨ āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻ°āĻžāĻŽāĻĻāĻžāĻ¯āĻŧāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3.
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĒāĻŋāĻāĻ
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ API āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¨ā§āĻ¨ā§āĻ¯āĻ¤āĻŽ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§:
1. āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻāĻĒ āĻĄāĻŋāĻā§āĻ˛ā§āĻ¯āĻŧāĻžāĻ°ā§āĻļāĻ¨: āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¸āĻš āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ,
āĻāĻŦāĻ,
2. āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻā§āĻļāĻ¨: āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ-āĻā§āĻ¨āĻžāĻ°ā§āĻā§āĻĄ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ
āĻ¯āĻž āĻ āĻ¨ā§āĻ¯ C++ āĻā§āĻ˛āĻžāĻ¸ āĻŽā§āĻŽā§āĻŦāĻžāĻ° āĻŽā§āĻĨāĻĄ āĻŦāĻž C++ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻ˛ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻšāĻžāĻāĻāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ samples/main-callback.cc.
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĒāĻŋāĻāĻ āĻ¸āĻā§āĻā§ āĻ¸ā§āĻĨāĻŋāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĄāĻŦāĻ˛
CbOne (āĻĄāĻŦāĻ˛ āĻ, āĻĄāĻŦāĻ˛ āĻŦāĻŋ)
{
std::cout << "cbOne a=" << a << ", b=" << b << std::endl;
āĻĢā§āĻ°āĻ¤ a;
}
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨:
int āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
// āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ: āĻĄāĻŦāĻ˛
// āĻĒā§āĻ°āĻĨāĻŽ arg āĻāĻžāĻāĻĒ: āĻĄāĻŦāĻ˛
// āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻ āĻāĻžāĻāĻĒ: āĻĄāĻŦāĻ˛
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ;
}
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋ-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ -- āĻ¯ā§āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨ā§āĻ āĻŦāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻā§ˇ āĻāĻ
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŽā§āĻ˛āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻā§āĻˇāĻŖāĻž
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°-āĻā§-āĻĢāĻžāĻāĻļāĻ¨ āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§āĨ¤ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻāĻŋ
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¨ā§āĻ¯āĻŧ, The
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ -- āĻāĻāĻŋ āĻāĻžāĻāĻĒ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨:
C++ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĒāĻžāĻ āĻāĻ°āĻž āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
http://www.cplusplus.com/doc/tutorial/templates/.
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§āĻ˛āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°
āĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻŦā§) āĻāĻŦāĻ āĻĒāĻžāĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻā§āĻāĻŋāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ, āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§
āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ§āĻ°āĻ¨ (āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻžāĻāĻāĻāĻŋāĻ° āĻŦā§āĻļāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĨāĻžāĻā§,
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ "āĻāĻ" āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻā§āĻˇāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ āĻŦāĻļā§āĻˇā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ§āĻ°ā§ āĻ°āĻžāĻā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻ¯ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻŦā§ āĻ¤āĻžāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ āĻŦāĻļā§āĻ¯āĻ āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§
āĻĄāĻŦāĻ˛ āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻ¯āĻ āĻĻā§āĻāĻŋ āĻĄāĻŦāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻ¯āĻžāĻ°
āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻā§āĻˇāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§ āĻ¨āĻž, āĻāĻāĻāĻŋ āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻāĻŦā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¯āĻĻāĻŋ
āĻā§āĻ āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋ āĻŦā§āĻŽāĻžāĻ¨āĻžāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¸āĻĢāĻ˛ āĻšāĻŦā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ
āĻ°āĻžāĻ¨-āĻāĻžāĻāĻŽ NS_FATAL_ERROR āĻāĻ¤ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻŦā§āĨ¤ āĻ¨āĻŽā§āĻ¨āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ
src/core/examples/main-callback.cc āĻāĻ° āĻļā§āĻˇā§ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻāĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§
āĻĻā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ () āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ.
āĻāĻāĻ¨, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ¨ā§āĻ¸āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻŦāĻžāĻāĻ§āĻ¤ā§ āĻšāĻŦā§
(CbOne)āĨ¤ āĻāĻĒāĻ°ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ CbOne-āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻ§āĻ°āĻ¨ āĻ°āĻ¯āĻŧā§āĻā§--
āĻāĻāĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ. āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻā§āĻ¨:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĄāĻžāĻŦāĻ˛ CbOne (āĻĄāĻžāĻŦāĻ˛ a, āĻĄāĻžāĻŦāĻ˛ b) {}
^ ^ ^
| | |
| | |
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ;
āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĨāĻžāĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻ˛ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ, āĻāĻŦāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻ˛ āĻĒā§āĻ°āĻāĻžāĻ°
āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ.
āĻāĻāĻ¨, āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ "āĻāĻ" āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§:
// āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻž cbOne āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§
one = MakeCallback (&CbOne);
āĻāĻ āĻāĻ˛ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ āĻŽā§āĻ˛āĻ¤, āĻŦāĻŋāĻļā§āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻĒāĻ°ā§āĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤. āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻˇāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻžāĻā§āĻā§
āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ āĻāĻļ āĻŦāĻžāĻāĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻāĻ = āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ (&CbOne) is
āĻāĻžāĻ¸ā§āĻ āĻ¯āĻž āĻāĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻļā§āĻˇ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§
āĻāĻ˛āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§, āĻ¯āĻĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
NS_ASSERT (!one.IsNull ());
// āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ cbOne āĻĢāĻžāĻāĻļāĻ¨ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻĄāĻŦāĻ˛ retOne;
retOne = one (10.0, 20.0);
āĻāĻ¨ā§āĻ¯ āĻā§āĻ IsNull() āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻāĻŋ āĻļā§āĻ¨ā§āĻ¯ āĻ¨āĻ¯āĻŧ -- āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻā§
āĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻ() āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻ¯āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻā§āĻā§ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
CbOne() āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻžāĻāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĒāĻŋāĻāĻ āĻ¸āĻā§āĻā§ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž āĻŦāĻ°āĻ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻŽā§āĻŽā§āĻŦāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, MakeCallback āĻĢāĻžāĻāĻļāĻ¨ā§ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, to
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻŦāĻ˛ā§āĻ¨ āĻā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨,
āĻāĻāĻžāĻĄāĻŧāĻžāĻ main-callback.cc āĻĨā§āĻā§:
āĻā§āĻ˛āĻžāĻ¸ MyCb {
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
int CbTwo (āĻĄāĻžāĻŦāĻ˛ a) {
std::cout << " invoke cbTwo a=" << a << std::endl;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ -5;
}
};
int āĻĒā§āĻ°āĻ§āĻžāĻ¨ ()
{
...
// āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ: int
// āĻĒā§āĻ°āĻĨāĻŽ arg āĻāĻžāĻāĻĒ: āĻĄāĻŦāĻ˛
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĻā§āĻ
āĻŽāĻžāĻāĻ¸āĻŋāĻŦāĻŋ āĻ¸āĻŋāĻŦāĻŋ;
// āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻž MyCb::cbTwo-āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§
āĻĻā§āĻ = MakeCallback (&MyCb::CbTwo, &cb);
...
}
āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ āĻŽā§āĻāĻāĻ˛āĻŦā§āĻ¯āĻžāĻ<> āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ°
āĻ¯ā§ āĻāĻĒāĻ°ā§ āĻĒāĻāĻā§āĻŽāĻŋ āĻŦāĻŋāĻāĻžāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻ¯āĻāĻ¨ āĻāĻāĻŋ
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĒāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ int āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() (ARG arg)
{
(*m_p.*m_pmi)(arg);
}
āĻāĻŦāĻ āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (m_p āĻāĻŦāĻ m_pmi) āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻāĻŋ
āĻĢāĻžāĻāĻļāĻ¨ āĻ˛āĻžāĻāĻ¨:
āĻĻā§āĻ = MakeCallback (&MyCb::CbTwo, &cb);
āĻ āĻŦāĻŋāĻāĻ˛ āĻ¯ā§ āĻāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¯āĻāĻ¨ āĻĻā§āĻ () āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
int āĻĢāĻ˛āĻžāĻĢāĻ˛ = āĻĻā§āĻ (1.0);
āĻāĻāĻāĻŋ āĻāĻ˛ tothe āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŦā§ CbTwo āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ (āĻĒāĻĻā§āĻ§āĻ¤āĻŋ) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĒāĻ°
&cb.
āĻāĻŦāĻ¨ āĻāĻžāĻ˛āĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻļā§āĻ¨ā§āĻ¯ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§; āĻ¤āĻžāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§ āĻā§āĻ āĻāĻ°āĻž āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻžāĻ¨ā§āĻ° āĻāĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻžāĻ˛ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ āĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻā§āĻŦāĻ˛ āĻĒāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻžāĻ˛
āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ "0"; āĻāĻāĻž MakeNullCallback<> āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ:
āĻĻā§āĻ = MakeNullCallback ();
NS_ASSERT (two.IsNull ());
āĻāĻāĻāĻŋ āĻ¨āĻžāĻ˛ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻž āĻ āĻŋāĻ āĻāĻāĻāĻŋ āĻ¨āĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§: āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻŦā§
āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ
āĻāĻŦāĻĻā§āĻ§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸
āĻĢāĻžāĻāĻļāĻ¨ āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻŦāĻĻā§āĻ§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĨ¤ āĻāĻā§ āĻāĻāĻž
āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯ā§ āĻŦāĻ¨ā§āĻ§āĻā§āĻ˛āĻŋ āĻŽā§āĻ˛āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ā§ˇ
āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖā§, āĻā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¨ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§āĻ¨ -- āĻ¯āĻāĻ¨ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°().
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ (āĻ¯ā§āĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§) āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§ āĻāĻžāĻāĻ˛ā§ āĻāĻŋ āĻšāĻŦā§
āĻāĻŋāĻā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨? āĻāĻ˛ā§āĻāĻāĻžāĻ¨ā§āĻĻā§āĻ°ā§āĻ¸ā§āĻā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§ āĻāĻ˛ āĻāĻ°ā§
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ "āĻāĻŦāĻĻā§āĻ§". āĻāĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻšāĻ¯āĻŧā§āĻā§
āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŦāĻĻā§āĻ§ (āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ)āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻĄ āĻāĻ° āĻāĻāĻāĻŋ āĻāĻŽā§āĻāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻā§ āĻ¯ā§
āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻāĻ¨āĻ āĻāĻ˛ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°āĨ¤ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ˛ āĻ¯ā§
āĻāĻ¸āĻ˛ā§ pcap āĻĢāĻžāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛ā§āĻā§āĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°
āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻŦā§:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ¸āĻŋāĻā§āĻ (Ptr āĻĢāĻžāĻāĻ˛, Ptr āĻĒāĻŋ);
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻā§āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄā§āĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻžāĻ° āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ, āĻ¤āĻžāĻ
āĻāĻāĻŋ āĻ¸āĻŋ-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻžāĻ āĻ¨āĻž āĻ¯ā§ āĻāĻ˛āĻŋāĻ āĻā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĨ¤ āĻāĻ˛āĻŋāĻ āĻā§āĻĄā§ āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻāĻžāĻ āĻ¤āĻž āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻāĻ˛ āĻ¯āĻž āĻĻā§āĻāĻ¤ā§:
m_promiscSnifferTrace (m_currentPkt);
āĻāĻŽāĻ°āĻž āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻ°āĻž āĻĻā§āĻ¯ Ptr āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§
āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ°ā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĨā§āĻā§
āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻ¯ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻ¨.
āĻāĻŽāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻŽā§āĻāĻŦāĻžāĻāĻ¨ā§āĻĄ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨. āĻāĻāĻž āĻāĻāĻ āĻ˛āĻžāĻā§
āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻšāĻ¤ā§ āĻ˛āĻžāĻā§
āĻāĻŦāĻĻā§āĻ§. āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§:
MakeBoundCallback (&DefaultSink, file);
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻ¯āĻž āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦāĻžāĻāĻ¨ā§āĻĄā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ā§
āĻ¯ā§āĻā§āĻ¤āĻŋ. āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻāĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§
āĻāĻŦāĻĻā§āĻ§ āĻ¯ā§āĻā§āĻ¤āĻŋ:
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ
āĻā§āĻ˛āĻžāĻ¸ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
SpecificFunctor(T*p, int (T::*_pmi)(ARG arg), BOUND_ARG boundArg)
{
m_p = p;
m_pmi = pmi;
m_boundArg = boundArg;
}
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ int āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() (ARG arg)
{
(*m_p.*m_pmi)(m_boundArg, arg);
}
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
void (T::*m_pmi)(ARG arg);
T* m_p;
BOUND_ARG m_boundArg;
};
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻĢāĻžāĻāĻļāĻ¨ / āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻā§āĻāĨ¤ āĻ¯āĻāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻāĻāĻ āĻ¸āĻā§āĻā§ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ, āĻ¯ā§āĻŽāĻ¨:
m_promiscSnifferTrace (m_currentPkt);
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻĒā§āĻ°āĻā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ā§ āĻāĻŦāĻĻā§āĻ§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§:
(*m_p.*m_pmi)(m_boundArg, arg);
āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĻā§āĻ āĻŦāĻž āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻŽāĻ°āĻž āĻ¸āĻā§āĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻā§ āĻŦāĻ˛ā§āĻ¨
āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻļā§āĻ¨ā§āĻ¯ NotifyEvent (Ptr a, Ptr b, MyEventType e);
āĻāĻāĻāĻ¨ āĻāĻŦāĻĻā§āĻ§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻŽāĻ¨:
MakeBoundCallback (&NotifyEvent, a1, b1);
āĻ āĻāĻŋāĻŽāĻžāĻ¨ā§ a1 āĻāĻŦāĻ b1 āĻāĻžāĻāĻĒā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ A āĻāĻŦāĻ B āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻ¤āĻŋāĻ¨āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻŦā§:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻļā§āĻ¨ā§āĻ¯ NotifyEvent (Ptr a, Ptr b, MyEventType e);
āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻāĻ§āĻžāĻ:
MakeBoundCallback (&NotifyEvent, a1, b1, c1);
āĻāĻŦāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻžāĻ¨ a1, b1 āĻāĻŦāĻ c1 āĻāĻžāĻāĻĒā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ A, B āĻāĻŦāĻ C āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§.
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻžāĻāĻ§āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§;
āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§, āĻāĻŦāĻĻā§āĻ§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°ā§āĻ¸āĻĄ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻž āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻ¸
āĻĒā§āĻ˛ā§āĻ¸āĻšā§āĻ˛ā§āĻĄāĻžāĻ° āĻāĻĒāĻ§āĻžāĻ°āĻž
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ in ns-3
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧā§ˇ ns-3? āĻāĻāĻžāĻ¨ā§ āĻāĻ°ā§ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻŦā§āĻļā§ āĻāĻŋāĻā§ āĻāĻā§
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§:
¡ āĻ¸āĻā§āĻ API
āĻ˛ā§āĻ¯āĻŧāĻžāĻ°-2/āĻ˛ā§āĻ¯āĻŧāĻžāĻ°-3 API
¡ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻāĻāĻĒāĻŋ āĻāĻŦāĻ āĻ°āĻžāĻāĻāĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ API
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻ˛ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻā§āĻ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻā§āĻĄāĻāĻŋ āĻŦā§āĻļ āĻāĻāĻŋāĻ˛ āĻāĻŦāĻ āĻā§āĻŦ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ-āĻ¤ā§āĻŦā§āĻ° āĻāĻŦāĻ āĻ
āĻā§āĻĄā§āĻ° āĻāĻā§āĻ° āĻŦā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤ āĻāĻā§āĻ°āĻšā§ āĻšāĻ˛ā§, āĻŦāĻŋāĻļā§āĻˇāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĻāĻ°āĻāĻžāĻ°ā§.
āĻā§āĻĄāĻāĻŋ āĻŽā§āĻ˛āĻ¤ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻļāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
http://www.codeproject.com/cpp/TTLFunction.asp. āĻāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻ°ā§āĻĒāĻ°ā§āĻāĻž āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ¸āĻŋ ++ āĻĄāĻŋāĻāĻžāĻāĻ¨, āĻāĻžāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻŦāĻ āĻ¨āĻāĻļāĻž āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻ¸
āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ˛ā§āĻāĻāĻžāĻ¨ā§āĻĻā§āĻ°ā§āĻ¸ā§āĻā§, āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ 5, āĻā§āĻ¨āĻžāĻ°āĻžāĻ˛āĻžāĻāĻāĻĄ āĻĢāĻžāĻāĻļāĻ¨.
āĻāĻ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§:
¡ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¯āĻāĻ¨ āĻāĻžāĻ˛āĻŋ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻā§āĻā§ āĻĨā§āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§
āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻā§āĻ
¡ āĻĒāĻŋāĻŽā§āĻĒāĻ˛ āĻāĻĄāĻŋāĻ¯āĻŧāĻŽ: āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ° āĻŽā§āĻ˛ āĻ āĻāĻļāĻā§ āĻ āĻ°ā§āĻĒāĻŖ āĻāĻ°ā§
āĻāĻžāĻ āĻ¤āĻžāĻ° pimpl āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°.
¡ āĻĻā§āĻāĻŋ āĻĒāĻŋāĻŽā§āĻĒāĻ˛ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¯āĻž CallbackImpl FunctorCallbackImpl āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¯ā§āĻā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨-āĻāĻžāĻāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻŽāĻĒāĻŋāĻāĻŋāĻāĻ°āĻā§āĻ¯āĻžāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻŽāĻĒā§āĻ˛āĻā§ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĢāĻžāĻāĻļāĻ¨āĨ¤
āĻāĻāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻŽāĻžāĻ¨ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻ āĻā§āĻĄāĻāĻŋ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ˛ā§āĻāĻāĻžāĻ¨ā§āĻĻā§āĻ°ā§āĻ¸ā§āĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ āĻāĻ°ā§ āĻ¨āĻž
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ§āĻ°āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻĒ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ,
āĻāĻāĻŋ āĻāĻĒāĻŋ-āĻ§ā§āĻŦāĻāĻ¸ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ§āĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ autoPtr.
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŽāĻĄā§āĻ˛
ns-3 āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ C++ āĻ āĻŦāĻā§āĻā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻˇāĻŖāĻž āĻāĻŦāĻ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ, C++ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§āĨ¤ ns-3 āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āĻ°āĻĨāĻžāĻāĻ¤ C++ āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻŋāĻā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨
āĻŦā§āĻšāĻ¤ā§āĻ¤āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻŦāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤āĨ¤ āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻšāĻ¯āĻŧ
āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻžāĻ āĻāĻā§ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ ns-3 āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻĄā§āĻ˛āĨ¤
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ C++ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¨āĻāĻļāĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§ ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¨āĻāĻļāĻž
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻĄāĻŋāĻāĻžāĻāĻ¨ (āĻĒāĻ˛āĻŋāĻŽāĻ°āĻĢāĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻŦāĻ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨), āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻĨāĻā§āĻāĻ°āĻŖ, āĻ -āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ
āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯
āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž. COM āĻŦāĻž Bonobo āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¤āĻžāĻ°āĻž āĻāĻ°āĻŦā§
āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻāĻļāĻž āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻŋāĻ¨āĻ¤ā§ ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻŽāĻĄā§āĻ˛, āĻ¯āĻĻāĻŋāĻ ns-3
āĻ¨āĻāĻļāĻž āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻšāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻšāĻ¯āĻŧ āĻ¨āĻž.
āĻ āĻŦāĻā§āĻā§āĻ āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄ āĻāĻāĻ°āĻŖ
C++ āĻŦāĻ¸ā§āĻ¤ā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻ¸ā§āĻ¤ā§-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ (āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻ¤āĻž,
āĻāĻ¨āĻā§āĻ¯āĻžāĻĒāĻ¸ā§āĻ˛ā§āĻļāĻ¨, āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻĒāĻ˛āĻŋāĻŽāĻ°āĻĢāĻŋāĻāĻŽ) āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ-āĻāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻĄā§āĻ° āĻ āĻāĻļ
āĻ¨āĻāĻļāĻž. ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§; āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§:
āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ āĻŋāĻāĻžāĻ¨āĻž ();
āĻ āĻŋāĻāĻžāĻ¨āĻž (uint8_t āĻĒā§āĻ°āĻāĻžāĻ°, const uint8_t *āĻŦāĻžāĻĢāĻžāĻ°, uint8_t āĻ˛ā§āĻ¨);
āĻ āĻŋāĻāĻžāĻ¨āĻž (const Address & address);
āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° = (const āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻ āĻŋāĻāĻžāĻ¨āĻž);
...
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
uint8_t m_type;
uint8_t m_len;
...
};
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻā§āĻ˛āĻžāĻ¸
āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns-3. āĻāĻ āĻŦā§āĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸
āĻā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻš āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻšāĻ˛:
¡ āĻā§āĻ˛āĻžāĻ¸ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻ°āĻ˛āĻ°ā§āĻĢ āĻāĻžāĻāĻ¨ā§āĻ
āĻāĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻžāĻ°āĻž āĻĒā§āĻ¤ā§
āĻŦāĻŋāĻļā§āĻˇ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĨ¤ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻžāĻ¨āĨ¤
¡ āĻĻā§āĻ¯ ns-3 āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻĻā§āĻā§āĻ¨)
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻā§āĻ˛āĻžāĻ¸ Ptr)
āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸ āĻāĻĒāĻ°ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻž
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¨āĨ¤ āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻ¸āĻ°āĻ˛āĻ°ā§āĻĢ āĻāĻžāĻāĻ¨ā§āĻ: āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ¤ā§
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻā§āĻ˛āĻžāĻ¸ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĒāĻ°ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋāĻ° āĻŦā§āĻāĻ˛ā§āĻĒāĻŋāĻ ns-3 āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻ°āĻŦā§
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨.
āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻŦāĻ āĻļā§āĻ°ā§āĻŖā§ ptr
āĻāĻāĻāĻŋ C++ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻāĻāĻāĻŋ āĻāĻāĻŋāĻ˛ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻā§āĻ˛āĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻ¨āĻāĻļāĻž āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻ°ā§āĻāĻŋ.
āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻā§
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸, āĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ°ā§āĻĢ()āĨ¤ āĻāĻāĻž
āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŦāĻžāĻ§ā§āĻ¯āĻŦāĻžāĻ§āĻāĻ¤āĻž Unref() āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻ¯āĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ. āĻāĻāĻ¨
āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻļā§āĻ¨ā§āĻ¯ā§ āĻĒāĻĄāĻŧā§, āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
¡ āĻ¯āĻāĻ¨ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻĄ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¯āĻŧ,
āĻ āĻĨāĻŦāĻž GetObject āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻāĻŋāĻā§ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
¡ āĻ¯āĻāĻ¨ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻĄ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨, āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž) āĻāĻāĻŋ āĻāĻŦāĻļā§āĻ¯āĻ
āĻāĻ˛ āĻ°ā§āĻĢ() āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
¡ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ Unref() āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻ¤ā§āĨ¤
āĻĄāĻžāĻāĻžāĻ° āĻāĻžāĻ° Unref() āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŋāĻā§āĻāĻž āĻāĻĒāĻļāĻŽ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ -āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸-āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
on the heap, āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤
āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻļāĻžāĻ°āĻž (Ptr)
āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ°ā§āĻĢ() āĻāĻŦāĻ Unref() āĻ¸āĻŦ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻˇā§āĻāĻāĻ° āĻšāĻŦā§, āĻ¤āĻžāĻ ns-3 āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ ptr āĻ āĻ¨ā§āĻ°ā§āĻĒ, āĻāĻāĻ, āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ Boost::intrusive_ptr. āĻāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¸ā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ¨āĻ°ā§āĻĢ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ āĻŦāĻā§āĻā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ°āĻŋāĻĢāĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻŦāĻ āĻšā§āĻ°āĻžāĻ¸āĨ¤
āĻāĻ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§āĻ¨ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°: āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻļā§āĻ¨ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻļā§āĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻž, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ
āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻāĻžāĻāĻāĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ GetPointer()
āĻāĻŦāĻ āĻĒāĻŋāĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻ
CreateObject āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§
āĻŽā§āĻŽāĻ°āĻŋ āĻĢāĻžāĻāĻ¸ āĻāĻĄāĻŧāĻžāĻ¨āĨ¤ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻā§āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ āĻŦāĻŋāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻˇā§āĻāĻŋ
C++ āĻ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻŋāĻ°, āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ¸āĻ¤ā§āĻ¯ āĻā§āĻ˛āĻŋāĻ¤ā§
āĻāĻ¨ā§āĻ¨āĻ¤ ns-3 āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻŋāĻā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻŦāĻŋāĻļā§āĻˇāĻ¤, āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
CreateObject āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒāĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯:
Ptr āĻĄāĻŋāĻāĻžāĻāĻ¸ = CreateObject ();
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž āĻĻāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻ¨āĻ¤ā§āĻ¨; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ CreateObject()
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§.
āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻ˛āĻ°ā§āĻĢ āĻāĻžāĻāĻ¨ā§āĻ, āĻŦāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸, āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻĄ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
Ptr b = Create ();
āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻ¨āĻ¤ā§āĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻāĻāĻŋ āĻŽā§āĻĄāĻŧāĻ āĻ¯āĻž āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ.
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¸ā§āĻˇā§āĻāĻŋ āĻ¯āĻĻāĻŋ B āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨
āĻŽā§āĻĄāĻŧāĻ), āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻĻāĻŋ B āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧ ns3::āĻ āĻŦāĻā§āĻā§āĻ.
āĻŽā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦā§āĻā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻ āĻāĻļā§ āĻ āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻŋ
āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ ns-2 āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻĒāĻ˛āĻŋāĻŽāĻžāĻ°āĻĢāĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŽāĻĄā§āĻ˛āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, TCP āĻāĻ° āĻŦāĻŋāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¯ā§āĻŽāĻ¨ RenoTcpAgent āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ
āĻā§āĻ˛āĻžāĻ¸ TcpAgent āĻĨā§āĻā§ (āĻāĻŦāĻ āĻĨā§āĻā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§āĻ¨)āĨ¤
āĻ¤āĻŦā§ āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻāĻŋāĻ¯āĻŧā§āĻā§ ns-2 āĻŽāĻĄā§āĻ˛ āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻ āĻāĻŦāĻ "āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻāĻŋāĻ¤ā§āĻ¤āĻŋ
āĻā§āĻ˛āĻžāĻ¸āĨ¤" āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻŦāĻ˛āĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻā§ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ
āĻāĻžāĻāĻĒ āĻ¤āĻĨā§āĻ¯ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž, āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻžāĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤
āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻāĻžāĻ¯āĻŧ
āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĻāĻžāĻŦā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž (āĻāĻ° āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤) āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ āĻāĻžāĻŦ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻā§ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ API āĻāĻ˛ā§āĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ° āĻāĻāĻžāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻā§ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻāĻ¤āĻāĻžāĻŦā§ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ āĻŋāĻāĨ¤
ns-3 āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĨ¤
āĻāĻ āĻ¨āĻāĻļāĻž āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻāĻŋāĻ¨ā§āĻŽ āĻŦāĻ¨ā§āĻŦā§ āĻ¯āĻĻāĻŋāĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻ¯ā§āĻā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§
āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻāĻŦāĻ āĻŽāĻĄā§āĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ°āĻāĻžāĻŦ āĻ¸āĻ°āĻ˛ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻŽā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¨ā§āĻĄ āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ ns-3. āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻ¨ā§āĻĄā§āĻ° āĻā§āĻ˛āĻžāĻ¸ ns-3 āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻ¨ā§āĻĄ. āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻĒāĻžāĻĻāĻžāĻ¨ (āĻĒā§āĻ°ā§āĻā§āĻāĻ˛) āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤. āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŋāĻā§ Ipv4 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸ā§āĻĨāĻŋāĻ° āĻļā§āĻ¨ā§āĻ¯
AddIpv4Stack(Ptr āĻ¨ā§āĻĄ)
{
Ptr ipv4 = CreateObject ();
ipv4->SetNode (āĻ¨ā§āĻĄ);
node->AggregateObject (ipv4);
Ptr ipv4Impl = CreateObject ();
ipv4Impl->SetIpv4 (ipv4);
node->AggregateObject (ipv4Impl);
}
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ Ipv4 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ CreateObject(). āĻ¤āĻžāĻ°āĻĒāĻ°, āĻ¤āĻžāĻ°āĻž āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄā§āĻ° āĻāĻžāĻā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ
Ipv4 āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ¨ā§āĻĄ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻš; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻāĻ° Ipv4 āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻāĻžāĻŦā§ āĻ¨ā§āĻĄāĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ āĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ§āĻžāĻ°āĻžāĨ¤
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ
an ns3::āĻ āĻŦāĻā§āĻā§āĻ. āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤āĻāĻ°āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻā§āĻāĨ¤
GetObject āĻāĻĻāĻžāĻšāĻ°āĻŖ
GetObject āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ-āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻāĻĒāĻžāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĒāĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ m_node āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻā§
IPv4 āĻĒā§āĻ°ā§āĻŦā§ āĻāĻāĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤. āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻĄ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ°ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋ
āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ° āĻāĻāĻĒāĻŋ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨. āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ āĻāĻ°ā§:
Ptr ipv4 = m_node->GetObject ();
āĻ¯āĻĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ Ipv4 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻšāĻŦā§
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻ¨āĻžāĻ˛āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻāĻžāĻ˛ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨
āĻāĻ˛ āĻ¸āĻĢāĻ˛ āĻšāĻ˛ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻ¨ Ipv4 āĻ āĻŦāĻā§āĻā§āĻā§ Ptr āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¯āĻž āĻāĻā§ āĻāĻŋāĻ˛
āĻ¨ā§āĻĄ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤.
āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻā§āĻāĻŋāĻ āĻŽāĻĄā§āĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻžāĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻāĻŋāĻ¤ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻāĻāĻŋ "āĻāĻ¨āĻžāĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛" āĻ āĻŦāĻā§āĻā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽ (āĻ¨ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻ¨āĻž āĻāĻ°ā§)āĨ¤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŽāĻĄā§āĻ˛ (āĻ¯ā§āĻŽāĻ¨ a
āĻŦā§āĻ¤āĻžāĻ° āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸) āĻĒāĻ°ā§ āĻļāĻā§āĻ¤āĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ "GetObject" āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¯āĻĨāĻžāĻ¯āĻĨāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¯āĻĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¨ā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄā§āĻ° āĻļāĻā§āĻ¤āĻŋ āĻŽāĻĄā§āĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻā§ āĻāĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ āĻŽā§āĻĄāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻ¨ā§āĻ āĻāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§
āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻžāĻ°āĻāĻžāĻ¨āĻž
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻ¨ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻĒāĻžāĻ°ā§
āĻāĻ˛ CreateObject() āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻāĻžāĻ¨āĻž āĻ¨āĻāĻļāĻž āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns-3 āĻĒāĻĻā§āĻ§āĻ¤āĻŋ.
āĻāĻāĻŋ "āĻ¸āĻšāĻžāĻ¯āĻŧāĻ" API āĻ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻļā§āĻ°ā§āĻŖā§ āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ āĻŦāĻ¸ā§āĻ¤ā§:
void SetTypeId (TypeId tid);
void āĻ¸ā§āĻ (std::string name, const AttributeValue &value);
Ptr āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) const;
āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ ns-3 āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ§āĻ°āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ TypeId āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻ¤ā§āĻ°āĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻāĻāĻāĻŋāĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻāĻžāĻāĻā§ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ:
āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻāĻžāĻ°āĻāĻžāĻ¨āĻž;
// āĻāĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻ¤ā§ FriisPropagationLossModel āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
factory.SetTypeId ("ns3::FriisPropagationLossModel")
// āĻāĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨, āĻāĻ° āĻāĻ¨ā§āĻ¯
// āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§
factory.Set ("SystemLoss", DoubleValue (2.0));
// āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
Ptr object = factory.Create ();
factory.Set ("SystemLoss", DoubleValue (3.0));
// āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ SystemLoss āĻĻāĻŋāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
Ptr object = factory.Create ();
āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻāĻŋāĻ
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¯āĻž āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻŦāĻžāĻ° āĻāĻ ā§āĻā§, "āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° (Ptr) āĻĨāĻžāĻā§
āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻžāĻ, āĻāĻŽāĻŋ āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻ āĻāĻ°āĻŦ (C++ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻāĻžāĻ¸ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§)
āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¨, āĻ āĻĨāĻŦāĻž āĻāĻŽāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻā§āĻ°āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ GetObject<> ()
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ API āĻāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻāĻāĻāĻŋ Ptr āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§?
āĻāĻ° āĻāĻ¤ā§āĻ¤āĻ° āĻšāĻ˛ āĻ āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻāĻāĻ¯āĻŧ āĻā§āĻļāĻ˛āĻ āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤ ns-3 āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ āĻŦāĻā§āĻā§āĻ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻāĻ° āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻĄ āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§
āĻŦāĻ¨ā§āĻ§ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ:
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ
Ptr
DynamicCast (Ptr const&p)
{
Ptr āĻĢāĻŋāĻ°ā§ (āĻāĻ¤āĻŋāĻļā§āĻ˛_āĻāĻžāĻ¸ā§āĻ (āĻĒāĻŋāĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° (āĻĒāĻŋ)));
}
DynamicCast āĻāĻžāĻ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻāĻžāĻāĻĒ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĨāĻžāĻā§ āĻāĻŦāĻ a āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĨ¤ GetObject āĻāĻžāĻ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻĄāĻŧāĻžāĻ
āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻāĻāĻžāĻ¸ā§āĻā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ˛ā§, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻāĻāĻŋāĻ¤
GetObject āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻ¸āĻŦ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻ¯āĻĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻžāĻ¨ā§āĻ¨
āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ§ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§, āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° DynamicCast āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻ°āĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋāĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ°ā§āĻĒ āĻāĻ°āĻž
In ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĻāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§:
¡ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻĒā§āĻ˛āĻāĻŋ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
¡ āĻāĻĒā§āĻ˛āĻāĻŋāĻ¤ā§ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻŽāĻĄā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŽāĻžāĻ¨āĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻāĻā§āĻŽā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°ā§: āĻāĻ¤āĻā§āĻ˛āĻŋ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§ ns-3 āĻšāĻ¯āĻŧ
āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻāĻ āĻŋāĻ¤, āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ¯ā§āĻā§āĻ¯ ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĻā§āĻ¯ ns-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻžāĻĄāĻŧāĻžāĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻā§āĻāĻžāĻŦā§ āĻā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻĄāĻžāĻ°āĻĒāĻŋāĻ¨āĻŋāĻāĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻā§āĻ°ā§āĻ¸ā§ āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ
āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ ns-3 āĻŽāĻĄā§āĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĨ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻ¤āĻžāĻ° āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻā§āĻ°āĻŽā§, āĻāĻā§āĻ˛āĻŋ āĻšāĻ˛:
âââââââââââââââââââââââââââââââââââŦâââââââââââââââ ââââââââââââââââââââ
âāĻĒāĻĻā§āĻ§āĻ¤āĻŋ â āĻ¸ā§āĻ¯ā§āĻ â
âââââââââââââââââââââââââââââââââââŧâââââââââââââââ ââââââââââââââââââââ¤
âāĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ â â āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§
â āĻ¯āĻāĻ¨ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ â āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ â
âGetTypeId (). â â
âââââââââââââââââââââââââââââââââââ´âââââââââââââââ ââââââââââââââââââââ
âāĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨ â āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻ¸āĻŦ āĻāĻāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ â
âāĻāĻ¨āĻĢāĻŋāĻ::āĻ¸ā§āĻāĻĄāĻŋāĻĢāĻ˛ā§āĻ() â â
âāĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° â â
âââââââââââââââââââââââââââââââââââŧâââââââââââââââ ââââââââââââââââââââ¤
âāĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ â āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ âā§ˇ
â â āĻāĻžāĻ°āĻāĻžāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§āĨ¤ â
âââââââââââââââââââââââââââââââââââŧâââââââââââââââ ââââââââââââââââââââ¤
âXHelperSetAttribute () â â āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ā§ˇ
â â āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĨ¤ â
âââââââââââââââââââââââââââââââââââŧâââââââââââââââ ââââââââââââââââââââ¤
âāĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸::āĻ¸ā§āĻāĻāĻā§āĻ¸ () â āĻāĻ āĻŦāĻŋāĻļā§āĻˇ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤ â
âāĻŦāĻ¸ā§āĻ¤ā§::SetAttribute () â āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻŋāĻ āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻ°ā§āĻŽ âā§ˇ
âāĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻ() â āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ âā§ˇ
â â āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻŦāĻžāĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ â
â â āĻāĻ˛āĻā§āĨ¤ â
âââââââââââââââââââââââââââââââââââ´âââââââââââââââ ââââââââââââââââââââ
"āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻ¤āĻž" āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻ°āĻž āĻŦā§āĻāĻžāĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻžāĻ°āĻŋāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§
āĻĻā§āĻŦāĻžāĻ°āĻž, āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻŽ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻ° āĻāĻā§, āĻāĻāĻŋ āĻāĻŋāĻā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§
āĻļā§āĻ°ā§āĻŖā§āĻ° āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯.
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
ns-3 āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋ C++ āĻ āĻŦāĻā§āĻā§āĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ C++ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻā§āĻāĻŋ
(āĻĒā§āĻ°āĻāĻžāĻ°) āĻ¯āĻĨāĻžāĻ°ā§āĻ¤āĻŋ āĻā§āĻˇāĻŋāĻ¤, āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻŦāĻ āĻāĻĒāĻļā§āĻ°ā§āĻŖā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ āĻ¨ā§āĻ ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸āĨ¤ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻā§
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ°:
¡ "āĻŽā§āĻāĻžāĻĄā§āĻāĻž" āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¨āĻžāĻŽāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ āĻŽā§āĻāĻž-āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛āĻŋāĻā§āĻ āĻāĻ°ā§
āĻŦāĻ¸ā§āĻ¤ā§, āĻ¸āĻš:
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸,
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°āĻĻā§āĻ° āĻ¸ā§āĻ,
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§āĻ° "āĻā§āĻŖāĻžāĻŦāĻ˛ā§" āĻāĻ° āĻ¸ā§āĻ,
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¨āĻžāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§āĻā§āĻ¯,
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻ¸āĻ°āĨ¤
¡ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
ns-3 āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¯ā§āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻĨā§āĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ or āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸āĨ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§
ns-3 āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻŦāĻžāĻāĻ°ā§ āĻ¯ā§ āĻāĻ¯āĻŧā§āĻ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸.
āĻāĻ¸ā§āĻ¨ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŋāĨ¤
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ Pointers
āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ ns-3 āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛, ns-3 āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻšāĻ¯āĻŧ āĻāĻ˛ā§āĻ˛ā§āĻ
āĻāĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻļāĻžāĻ°āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻā§āĻ˛āĻžāĻ¸ ptr.
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ ns-3 āĻāĻĒāĻŋāĻāĻ, āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻĒāĻžāĻ¸ āĻāĻĄāĻŧāĻžāĻ¤ā§
āĻ¸ā§āĻ¤ā§āĻĒ-āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻ˛āĻŋāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸), āĻāĻŋāĻāĻŋāĻ¤ā§āĻ¸āĻž
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°:
Ptr nd = ...;
nd->CallSomeFunction ();
// āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ
āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¤ā§, āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžāĻāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§?
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ-āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸-āĻĒāĻŋāĻāĻŋāĻāĻ°-āĻ, āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API-āĻ, āĻŦāĻ¸ā§āĻ¤ā§
āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžā§āĻā§āĻˇāĻŖāĻŋāĻ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¯āĻĨāĻžāĻ°ā§āĻ¤āĻŋ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻĄ
āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ().
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
Ptr nd = CreateObject ();
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§āĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻŦāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
WifiNetDevice*nd = āĻ¨āĻ¤ā§āĻ¨ WifiNetDevice ();
āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻĻāĻž āĻāĻĒāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ()āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§
āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸, āĻ¯ā§āĻŽāĻ¨ ns-3 āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻšā§āĻĄāĻžāĻ° āĻāĻŦāĻ āĻā§āĻ°ā§āĻ˛āĻžāĻ°,
āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻāĻĒāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻŋāĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§, āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¨āĻž āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ () āĻā§āĻĄ āĻāĻ˛; āĻāĻ
āĻāĻžāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻŋāĻā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻā§ āĻ¯āĻž āĻāĻ°āĻā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ () āĻāĻ˛
āĻ¤ā§āĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯.
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
ns-3 āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻā§āĻ˛āĻžāĻ¸ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻ¯ā§
āĻ āĻŦāĻā§āĻā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽā§āĻāĻž-āĻ¤āĻĨā§āĻ¯ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ:
¡ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤
āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻ¸ā§āĻāĨ¤
¡ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž ("āĻā§āĻŖāĻžāĻŦāĻ˛ā§")āĨ¤
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¸āĻžāĻ°āĻžāĻāĻļ
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻāĻāĻ¸āĻžāĻĨā§ āĻ°ā§āĻā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋ: āĻā§āĻ˛āĻžāĻ¸ āĻ¨ā§āĻĄ.
āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ node.h āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻā§āĻˇāĻŖāĻž āĻāĻā§ GetTypeId ()
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛:
āĻā§āĻ˛āĻžāĻ¸ āĻ¨ā§āĻĄ: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
...
āĻāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ node.cc āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĢāĻžāĻāĻ˛:
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
āĻ¨ā§āĻĄ::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::Node")
.SetParent ()
.AddConstructor ()
.AddAttribute ("āĻĄāĻŋāĻāĻžāĻāĻ¸āĻ˛āĻŋāĻ¸ā§āĻ",
"āĻāĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤",
āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻā§āĻāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ (),
MakeObjectVectorAccessor (&Node::m_devices),
MakeObjectVectorChecker ())
.AddAttribute ("āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻ˛āĻŋāĻ¸ā§āĻ",
"āĻāĻ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤",
āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻā§āĻāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ (),
MakeObjectVectorAccessor (&Node::m_applications),
MakeObjectVectorChecker ())
.AddAttribute ("Id",
"āĻāĻ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻĄāĻŋ (āĻ āĻ¨āĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž)āĨ¤",
TypeId::ATTR_GET, // āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨āĨ¤
UintegerValue (0),
MakeUintegerAccessor (&Node::m_id),
MakeUintegerChecker ())
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻāĻ° ns-3 āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻĒ āĻāĻžāĻāĻĒā§āĻ° āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻĢāĻ°ā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻ˛āĻžāĻ¸
āĻ¤āĻĨā§āĻ¯ (RTTI)āĨ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ C++ āĻāĻžāĻˇāĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ§āĻ°āĻ¨ā§āĻ° RTTI āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ¤āĻŋāĻļā§āĻ˛_āĻāĻžāĻ¸ā§āĻ āĻāĻŦāĻ typeid āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸ā§āĻ āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ () āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧ āĻāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¯ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻžāĻā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻāĻĒ āĻāĻŦāĻ āĻĄāĻžāĻāĻ¨-āĻāĻžāĻ¸ā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻŦāĻā§āĻā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻļāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ
āĻ¸āĻŽāĻ¯āĻŧ GetObject (). āĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§
āĻŦāĻ°ā§āĻ.
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ ā§āĻ¯āĻžāĻĄāĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° () āĻāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻžāĻ°āĻāĻžāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¯ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻā§āĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻ¨āĻž āĻāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ C++ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻ¤āĻŋāĻ¨āĻŋ āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻāĻā§āĻ°āĻŋāĻ āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻ¤āĻŋāĻ¨āĻāĻ¨āĻā§ āĻĄāĻžāĻā§ āĻā§āĻ¨āĻāĻ¤ āĻŽāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž () āĻāĻāĻāĻŋ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻ¸āĻā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻļā§āĻ°ā§āĻŖā§. āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻŖ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤
āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, MakeUintegerAccessor () āĻŦāĻ˛ā§
āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻā§āĻŖ āĻā§āĻĄ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ°ā§ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻĒā§āĻ¤ā§ āĻšāĻ¯āĻŧ)āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ "āĻā§āĻāĻžāĻ°" āĻāĻā§
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻŽāĻžāĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻŦāĻ
āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŽāĻžāĻ¨āĨ¤
āĻ¯āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻ¤āĻžāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŋāĻā§ āĻĢāĻ°ā§āĻŽ āĻāĻ˛ āĻāĻ°āĻŦā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (),:
Ptr n = CreateObject ();
āĻŦāĻž āĻāĻ°āĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤āĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻžāĻ°āĻāĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¨ā§āĻĄ āĻŦāĻŋāĻ¨āĻž āĻŦāĻ¸ā§āĻ¤ā§
āĻāĻāĻā§āĻ°āĻŋāĻ C++ āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻžāĻ¨āĻž:
āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻāĻžāĻ°āĻāĻžāĻ¨āĻž;
const std::string typeId = "ns3::Node'';
factory.SetTypeId (āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ);
Ptr node = factory.Create ();
āĻāĻ āĻāĻāĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĢāĻ˛ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻĢāĻ˛ā§ āĻāĻŦāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒāĨ¤
āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ (āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦāĻž āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤
āĻā§āĻ˛āĻžāĻ¸) āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻŽāĻ§ā§āĻ¯ā§ plumbed āĻšāĻ¯āĻŧ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ.
āĻāĻ°ā§āĻĒ āĻāĻ°āĻž
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ a āĻāĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻž
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ āĻ˛āĻā§āĻˇā§āĻ¯āĻāĻŋ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻžāĻ°āĻŖ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻžāĻāĻŦā§ āĻāĻŦāĻ
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻžāĻ¨/āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨, āĻ āĻĨāĻŦāĻž āĻāĻā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨,
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻā§āĻ°āĻšā§ āĻšāĻŦā§. āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻŽāĻ¨:
¡ "I āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻĨā§āĻā§ āĻāĻŋāĻšā§āĻ¨ āĻĻā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻ on āĻĻā§āĻ¯ āĻŦā§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻŦāĻ˛ on āĻĻā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ°āĻŦā§āĻļ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĨ¤"
¡ "I āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻĨā§āĻā§ āĻāĻŋāĻšā§āĻ¨ āĻĻā§āĻ¯ āĻŽā§āĻ˛ā§āĻ¯ of āĻĻā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ TCP āĻĒā§āĻ°ā§āĻŖāĻ¤āĻž āĻāĻžāĻ¨āĻ˛āĻž (āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻŽāĻ¯āĻŧ it āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨) on a
āĻŦāĻŋāĻļā§āĻˇ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ TCP āĻ¸āĻā§āĻ."
¡ "I āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ a āĻŽāĻ¨āĻŽāĻ°āĻž āĻāĻžāĻŦ of āĻ¸āĻŦ āĻŽā§āĻ˛ā§āĻ¯āĻŦā§āĻ§ āĻ¯ā§ āĻāĻŋāĻ˛ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ in my āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĨ¤"
āĻāĻāĻāĻāĻžāĻŦā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸ā§āĻā§āĻˇā§āĻŽ-āĻĻāĻžāĻ¨āĻžāĻ¯ā§āĻā§āĻ¤ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻŦāĻž
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŽāĻžāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĨ¤ āĻ āĻŦāĻļā§āĻˇā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻžāĻ¨āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°āĻ¯ā§āĻā§āĻ¯āĨ¤ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¯āĻŧ
āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž; āĻāĻāĻāĻŋ (āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤) āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻāĻāĻāĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻāĻžāĻ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§ āĻĄāĻžāĻ¨-āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻā§āĻ¯āĻžāĻ¨āĻāĻžāĻ¸ āĻāĻŦāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻĻā§āĻ§, āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻā§āĻ¨ āĻ¯āĻž āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ¨ā§āĻĄ āĻāĻŦāĻ āĻāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻ āĻŦāĻā§āĻā§āĻ, āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻā§āĻā§āĻ¸āĻ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨
āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĨ¤
āĻ¸āĻāĻā§āĻāĻž āĻāĻ°ā§āĻĒ āĻāĻ°āĻž
āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻā§āĻ°ā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋ, āĻĒā§āĻ˛āĻžāĻŽā§āĻŦāĻŋāĻ āĻāĻžāĻĄāĻŧāĻžāĻā§ˇ
āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ° (āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ¤ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻāĻ¨ āĻšāĻžāĻāĻāĻž. āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨
āĻļā§āĻ°ā§āĻŖā§ DropTailQueue āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻāĻā§ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ;
āĻāĻ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻžāĻ°āĻŋāĻ° āĻāĻā§āĻ°āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻāĻ° āĻā§āĻˇāĻŖāĻž āĻĻā§āĻāĻŋ DropTailQueue, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ:
āĻā§āĻ˛āĻžāĻ¸ DropTailQueue : āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ°āĻŋ {
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
...
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
std:: āĻ¸āĻžāĻ°āĻŋ > m_packets;
uint32_t m_max āĻĒā§āĻ¯āĻžāĻā§āĻ;
};
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ:
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ DropTailQueue āĻ¸ā§āĻˇā§āĻ,
āĻāĻ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻ¯ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĨā§āĻā§ āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
¡ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻŦāĻž āĻĒāĻžāĻ¨āĨ¤
āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¸ā§āĻ () āĻāĻŦāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž () āĻĢāĻžāĻāĻļāĻ¨, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻ§āĻ°āĻ¨ā§āĻ°
āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĨ¤
āĻŽāĻ§ā§āĻ¯ā§ ns-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻāĻ āĻŽāĻžāĻ¨ āĻ¸āĻāĻā§āĻāĻž āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨
āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻā§āĻ˛āĻžāĻ¸; āĻ¯ā§āĻŽāĻ¨.:
NS_OBJECT_ENSURE_REGISTERED (āĻĄā§āĻ°āĻĒāĻā§āĻāĻ˛ āĻ¸āĻžāĻ°āĻŋ);
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
DropTailQueue::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::DropTailQueue")
.SetParent ()
.AddConstructor ()
.AddAttribute ("MaxPackets",
"āĻāĻ DropTailQueue āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤",
UintegerValue (100),
MakeUintegerAccessor (&DropTailQueue::m_maxPackets),
MakeUintegerChecker ())
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻā§āĻ¨āĻāĻ¤ āĻŽāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž () āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŽāĻžāĻ¨:
¡ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤) āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦāĻžāĻāĻ§āĻžāĻ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻāĻāĻŋ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§
"āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĒā§āĻ¯āĻžāĻā§āĻ".
¡ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž (100 āĻĒā§āĻ¯āĻžāĻā§āĻ)āĨ¤
āĻŽāĻžāĻ¨āĻāĻŋāĻ° āĻ āĻ°ā§āĻĨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŋāĻā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻžāĨ¤
¡ āĻāĻāĻāĻŋ "āĻā§āĻāĻžāĻ°" āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž (āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ) āĻ¯āĻž āĻ¸ā§āĻŽāĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻžāĨ¤
āĻŽā§āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ āĻāĻāĻ¨ āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§, āĻ¯āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¯ā§āĻŽāĻ¨ "āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĒā§āĻ¯āĻžāĻā§āĻ" āĻāĻŦāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻ¨āĻžāĻŽ
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦ āĻ¯āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ āĻŽāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ.
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻāĻ¤āĻž āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ NS_OBJECT_ENSURE_REGISTERED
(āĻĄā§āĻ°āĻĒāĻā§āĻāĻ˛ āĻ¸āĻžāĻ°āĻŋ) āĻŦāĻ˛āĻž āĻšāĻā§āĻā§; āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ°ā§āĻā§ āĻ¯āĻžāĻ¨, āĻāĻĒāĻ¨āĻžāĻ°
āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻž.
āĻ¯āĻĻāĻŋāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻāĻŋ, āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻā§āĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻŦ āĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋāĻ¨āĻŋ
āĻāĻŦāĻ āĻāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¨ā§āĻ globals.h āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻāĻā§
āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ āĻā§ āĻāĻŋāĻāĻžāĻŦā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻŋ āĻ¸āĻšāĻā§āĻ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻāĻžāĻŦā§ āĻļāĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°ā§āĻ¨ āĻŦāĻž āĻ¤āĻžāĻĻā§āĻ° āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ āĻ¨ā§āĻāĻ°āĻŖ?
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĒā§āĻ°āĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļāĻĻ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻāĻĒāĻ˛āĻŦā§āĻ§āĨ¤ āĻāĻ āĻŦāĻžāĻāĻŋ āĻāĻ¨ā§āĻ¯
āĻ¨āĻĨāĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ
āĻŽāĻžāĻ¨āĨ¤
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ
Config::SetDefault āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨
āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŽāĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ¯āĻžāĻā§āĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° src/point-to-point/examples/main-attribute-value.cc āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ, āĻ¸āĻā§āĻā§
āĻāĻŋāĻā§ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŋāĻ¨āĻ¤āĻžāĻ āĻāĻāĻ. āĻĻā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ:
// āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
// āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻĒāĻžāĻ¨; āĻ¯āĻĨāĻž, āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨
// āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž
//
āĻā§āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
// āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, MaxPackets āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° 100 āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§
// (āĻāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻāĻŋ DropTailQueue::GetTypeId āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§)
//
// āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ 80 āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻ¸ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
// āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻŽāĻžāĻ¨ āĻŦāĻž āĻāĻāĻāĻŋ Uinteger āĻŽāĻžāĻ¨
Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("80"));
// āĻ¨ā§āĻā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ
Config::SetDefault ("ns3::DropTailQueue::MaxPackets", UintegerValue (80));
// āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§āĻāĻŋ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨
// āĻ¸ā§āĻāĻĄāĻŋāĻĢāĻ˛ā§āĻ () āĻ°āĻžāĻ¨-āĻāĻžāĻāĻŽā§, āĻāĻŽāĻžāĻ¨ā§āĻĄ-āĻ˛āĻžāĻāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§
// āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, "--ns3::DropTailQueue::MaxPackets=80" āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨ cmd;
// āĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĨā§āĻā§ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§:
cmd.AddValue ("maxPackets", "ns3::DropTailQueue::MaxPackets");
cmd.Parse (argc, argv);
āĻāĻĒāĻ°ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻšāĻ˛ āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻāĻ˛ Config::SetDefault
(). āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻ¸āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻŋ
DropTailQueues āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻŽā§āĻ˛ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸, āĻ āĻ¤āĻžāĻ°ā§āĻ° āĻāĻĒāĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ
UintegerValue class, āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻžāĻŽāĻ¯ā§āĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
"ns3::DropTailQueue::MaxPackets"āĨ¤
āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ āĻ¸āĻŽā§āĻāĻŦ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨; āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻā§āĻāĻŋ
āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§āĨ¤ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¸āĻšāĻ
āĻ¨āĻžāĻŽ, āĻ¯ā§āĻŽāĻ¨ -- āĻŽā§āĻ¯āĻžāĻā§āĻ¸ āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ,
āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§ "ns3::DropTailQueue::MaxPackets". āĻāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻā§ āĻ¯ā§
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšā§āĻ˛ā§āĻĒ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻšāĻŦā§āĨ¤
āĻāĻ°ā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻā§āĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨āĨ¤
āĻāĻāĻ¨, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻ¸āĻžāĻ°āĻŋ āĻšāĻŦā§
āĻ¨ā§āĻ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ 100 āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
DropTailQueue::GetTypeId () āĻĢāĻžāĻāĻļāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ 80 āĻĒā§āĻ¯āĻžāĻā§āĻā§, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻāĻŋ āĻāĻ°ā§āĻāĻŋ
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨.:
Ptr n0 = CreateObject ();
Ptr net0 = CreateObject ();
n0->āĻ ā§āĻ¯āĻžāĻĄāĻĄāĻŋāĻāĻžāĻāĻ¸ (āĻ¨ā§āĻ0);
Ptr q = CreateObject ();
net0->AddQueue(q);
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ āĻ¨ā§āĻĄ (n0) āĻāĻŦāĻ āĻāĻāĻ PointToPointNetDevice
(net0), āĻāĻŦāĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻāĻāĻŋ DropTailQueue (q) āĻĨā§āĻā§ net0.
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻāĻžāĻ°ā§, āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ
āĻā§āĻŖāĻžāĻŦāĻ˛ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĨā§āĻā§ āĻāĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻāĻĒāĻŋāĻāĻ; āĻšāĻ¯āĻŧ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°āĻĻā§āĻ° āĻĨā§āĻā§:
Ptr p =
CreateObjectWithAttributes
("MinX", DoubleValue (-100.0),
"MinY", DoubleValue (-100.0),
"DeltaX", DoubleValue (5.0),
"DeltaY", DoubleValue (20.0),
"āĻā§āĻ°āĻŋāĻĄāĻāĻāĻĨ", UintegerValue (20),
"LayoutType", StringValue ("RowFirst"));
āĻ āĻĨāĻŦāĻž āĻāĻā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ API āĻĨā§āĻā§, āĻ¯ā§āĻŽāĻ¨:
āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻžāĨ¤āĻ¸ā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻāĻāĻžāĻ°ā§
("ns3::GridPosition Allocator",
"MinX", DoubleValue (-100.0),
"MinY", DoubleValue (-100.0),
"DeltaX", DoubleValue (5.0),
"DeltaY", DoubleValue (20.0),
"āĻā§āĻ°āĻŋāĻĄāĻāĻāĻĨ", UintegerValue (20),
"LayoutType", StringValue ("RowFirst"));
āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻŋ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ¸āĻš
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻāĻā§āĻ˛ā§ āĻĨāĻžāĻāĻŦā§
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĨ¤ āĻāĻāĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ APIāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§āĻ
āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻ˛āĻžāĻ¸ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§ āĻĨā§āĻā§ be
āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ in āĻĻā§āĻ¯ āĻāĻŦāĻŋāĻˇā§āĻ¯ā§
¡ Config::SetDefault ()
¡ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨::āĻ ā§āĻ¯āĻžāĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ ()
¡ CreateObjectWithAttributes<> ()
¡ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ API
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻžāĻšāĻ˛ā§ āĻā§ āĻšāĻŦā§
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯? āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻāĻŋāĻāĻžāĻŦā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ m_max āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻŽāĻžāĻ¨
āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ DropTailQueue? āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° (ptr) āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšāĻžāĻ¤ā§ āĻāĻā§; āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻāĻāĻž net0 āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻžāĻŦāĻ˛ā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ (āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸) āĻāĻŋāĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĻā§āĻ¯
PointToPointNetDevice āĻā§āĻŖāĻžāĻŦāĻ˛ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ "TxQueue":
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ tmp;
net0->GetAttribute ("TxQueue", tmp);
Ptr txQueue = tmp.GetObject ();
āĻāĻĒāĻ°ā§āĻ° GetObject () āĻĢāĻžāĻāĻļāĻ¨, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ downcast āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ DropTailQueue, āĻā§āĻĨāĻžāĻ¯āĻŧ
"āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĒā§āĻ¯āĻžāĻā§āĻ" āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯:
Ptr dtq = txQueue->GetObject ();
NS_ASSERT (dtq != 0);
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻŽā§āĻĄāĻŧāĻ āĻāĻžāĻ˛ā§ āĻāĻā§
āĻŽā§āĻ˛ā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻžāĻāĻž āĻ°âā§āĻ¯āĻžāĻĒāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§,
āĻ¯ā§āĻšā§āĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻžāĻ¨ā§, āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° āĻŽāĻžāĻ¨ a āĻā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ UintegerValue, āĻāĻŦāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž () āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻŽāĻžāĻ¨ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°ā§ (āĻāĻŦāĻĄāĻŧāĻžāĻ¨ā§) uint32_t.:
UintegerValue āĻ¸ā§āĻŽāĻž;
dtq->GetAttribute ("āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĒā§āĻ¯āĻžāĻā§āĻāĻ¸", āĻ¸ā§āĻŽāĻž);
NS_LOG_INFO ("1. dtq āĻ¸ā§āĻŽāĻž: " << limit. āĻĒāĻžāĻ¨ () << " āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ");
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ° āĻĄāĻžāĻāĻ¨āĻāĻžāĻ¸ā§āĻā§āĻ° āĻāĻ¸āĻ˛ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ; āĻāĻŽāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ āĻ°ā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻžāĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĨā§āĻā§ txQueue, āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯:
txQueue->GetAttribute ("MaxPackets", āĻ¸ā§āĻŽāĻž);
NS_LOG_INFO ("2. txQueue āĻ¸ā§āĻŽāĻž: " << limit. āĻĒāĻžāĻ¨ () << " āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ");
āĻāĻāĻ¨, āĻāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ (60 āĻĒā§āĻ¯āĻžāĻā§āĻ) āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ:
txQueue->SetAttribute("MaxPackets", UintegerValue (60));
txQueue->GetAttribute ("MaxPackets", āĻ¸ā§āĻŽāĻž);
NS_LOG_INFO ("3. txQueue āĻ¸ā§āĻŽāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§: " << limit. āĻĒāĻžāĻ¨ () << " āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ");
āĻāĻ¨āĻĢāĻŋāĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻĨ
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻāĻāĻžāĻ¨ā§,
āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻāĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĒāĻĨā§ āĻĨāĻžāĻā§; āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻāĻ
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ
āĻāĻāĻāĻŋ āĻāĻāĻ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ¸āĻš āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯.:
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻ ("/NodeList/0/DeviceList/0/TxQueue/MaxPackets",
UintegerValue (25%);
txQueue->GetAttribute ("MaxPackets", āĻ¸ā§āĻŽāĻž);
NS_LOG_INFO ("4. āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ txQueue āĻ¸ā§āĻŽāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§:"
<< āĻ¸ā§āĻŽāĻžāĨ¤ āĻĒāĻžāĻ¨ () << " āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ");
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻžāĻĨ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻĢāĻ°ā§āĻŽ āĻāĻā§ ".../
āĻ¨āĻžāĻŽ>/ /.../ / " āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§
āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻ°āĻ āĻ¸āĻŦ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¨ā§āĻĄs; āĻĻā§āĻ¯
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ§āĻžāĻ°āĻ āĻ¸āĻŦ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻĒāĻ° s āĻ¨ā§āĻĄāĨ¤ āĻ āĻŦāĻļā§āĻˇā§,
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻžāĻĨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻŖāĻžāĻŦāĻ˛ā§āĻ° āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧ, āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§
"āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĒā§āĻ¯āĻžāĻā§āĻ" āĻāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ "TxQueue" āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤āĻĻā§āĻ° āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸.
āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻĄ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻ¤āĻžāĻŽ
(āĻ¯āĻž āĻāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻā§āĻ°āĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻĒā§āĻ°āĻāĻžāĻŦ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻ ()):
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻ ("/NodeList/*/DeviceList/*/TxQueue/MaxPackets",
UintegerValue (15%);
txQueue->GetAttribute ("MaxPackets", āĻ¸ā§āĻŽāĻž);
NS_LOG_INFO ("5. txQueue āĻ¸ā§āĻŽāĻž āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄā§āĻĄ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§:"
<< āĻ¸ā§āĻŽāĻžāĨ¤ āĻĒāĻžāĻ¨ () << " āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ");
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻž
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻŽ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻĻā§āĻ¯
āĻ āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻŽ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§ āĻāĻāĻā§āĻŽ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
"/āĻ¨āĻžāĻŽ/" āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¨āĻžāĻŽā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻš āĻĒāĻĨāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻ¨āĻž āĻāĻ°ā§
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨
āĻāĻāĻā§āĻ°āĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻžāĻĨāĨ¤
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°", n0);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0", net0);
...
Config::Set ("/Names/server/eth0/TxQueue/MaxPackets", UintegerValue (25));
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒāĻžāĻĨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋ "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" āĻāĻŦāĻ "eth0" āĻ āĻ§ā§āĻ¨ā§ "/āĻ¨āĻžāĻŽ/" āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ°
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻžāĻĨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻāĻŋāĻ¤ā§āĻ¸āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻŦāĻā§āĻā§āĻ-āĻ¨āĻžāĻŽ āĻĻā§āĻā§āĻ¨ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻŽā§āĻ˛ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸
āĻĒāĻžāĻ āĻāĻ°āĻž āĻ¨ā§āĻ āĻāĻ°āĻŦā§āĻ¨ TypeValue āĻ¯ā§ āĻļā§āĻ°ā§āĻŖā§āĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻāĻ° āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻāĻŋāĻ¤ā§āĻ¤āĻŋ
āĻā§āĻ˛āĻžāĻ¸ āĻāĻā§āĻ˛āĻŋāĻā§ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻļā§āĻ°ā§āĻŖā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻŦāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻāĻžāĻāĻāĻž āĻĨā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻĨā§āĻā§ āĻĒā§āĻ°āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§s āĻ¯āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻ
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ āĻ¨ā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻ āĻā§āĻ°āĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°
āĻšāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻŽāĻžāĻ¨, āĻŦāĻž āĻĄāĻžāĻŦāĻ˛ āĻā§āĻ¯āĻžāĻ˛ā§ āĻāĻ¨ā§āĻ¨āĻ¤
āĻāĻžāĻ¸āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻ¸āĻāĻā§āĻ¯āĻž) āĻŦāĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ āĻāĻĒāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻā§
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻŦāĻž āĻŽāĻžāĻ¨:
p->āĻ¸ā§āĻ ("cwnd", StringValue ("100")); // āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¸ā§āĻāĻžāĻ°
p->āĻ¸ā§āĻ ("cwnd", IntegerValue (100)); // āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¸ā§āĻāĻžāĻ°
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻāĻŋāĻā§ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻā§āĻˇāĻŖāĻž āĻāĻŦāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§
āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻ¯āĻž āĻ¤āĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ:
¡ ATTRIBUTE_HELPER_HEADER
¡ ATTRIBUTE_HELPER_CPP
āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻāĻ āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĻā§āĻā§āĻ¨āĨ¤
āĻāĻ°āĻŽā§āĻ āĻ āĻ°ā§āĻĄāĻžāĻ°
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ¤ā§ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻŦā§ āĻ¨āĻž
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ. āĻāĻāĻŋ āĻāĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻāĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻŦāĻž
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¯ā§āĻŽāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°. āĻ¯āĻĻāĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ°āĻŽā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ āĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°āĻāĻžāĻŦā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦāĻ°ā§āĻŖāĻžāĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ āĻā§āĻ°āĻŽā§āĨ¤
āĻāĻ āĻ -āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ°āĻŽ-āĻāĻ° āĻāĻžāĻ°āĻŖā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻā§āĻ¨ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻāĻāĻžāĻ°ā§āĻ°āĻž āĻ āĻŦāĻļā§āĻ¯āĻ āĻ°āĻžāĻˇā§āĻā§āĻ°ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻŦā§āĻ¨ āĻ¨āĻž
āĻ āĻ¨ā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ°āĨ¤ āĻā§āĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ (āĻ¸ā§āĻ) āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
āĻāĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĨ¤
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻāĻŦāĻ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻ āĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§. āĻāĻ āĻ˛āĻā§āĻˇā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ
āĻāĻāĻ¨ āĻĻā§āĻ¯ āĻā§āĻŖ is āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ (cf. NS_ASSERT_MSG or NS_ABORT_MSG).
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻĄ
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻĒāĻ°ā§ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ
āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻŦāĻĄāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻžāĻ°āĻŖ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋāĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻāĻžāĻ°ā§? āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻā§āĻ˛āĻžāĻ¸ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°: āĻāĻ˛
āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸::ConstructSelf () āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
ConfigStore::ConfigStore ()
{
āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸::ConstructSelf (AttributeConstructionList ());
// āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨āĨ¤
}
āĻ¸āĻ¤āĻ°ā§āĻ āĻĨāĻžāĻā§āĻ¨ āĻ¯ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ GetInstanceTypeId
() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸::ConstructSelf () āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻ¨āĻž
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻžāĻŦāĻ˛ā§āĨ¤
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ°ā§āĻĒ āĻāĻ°āĻž
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŽāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§
āĻ¨āĻŋāĻāĻ¸āĻ¨ā§āĻĻā§āĻšā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻŦā§āĻ¨ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŽāĻŋāĻ¸ āĻāĻ°ā§āĻāĻŋ āĻŦāĻž āĻ¤āĻžāĻĻā§āĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§:
āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻĄā§āĻāĻž āĻ¸āĻĻāĻ¸ā§āĻ¯āĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻāĻ°āĻž, āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¨ā§āĻāĨ¤
¡ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸āĻā§ āĻāĻāĻāĻŋ TypeId āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻ¸āĻĻāĻ¸ā§āĻ¯āĻā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĨ¤
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛
āĻāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ TcpSocket:
uint32_t m_cWnd; // āĻ¯āĻžāĻ¨āĻāĻ āĻāĻžāĻ¨āĻžāĻ˛āĻž
āĻ§āĻ°ā§āĻ¨ āĻ¯ā§ āĻā§āĻ TCP āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ āĻŦāĻž āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ
āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž ns-3, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻ¨ (āĻ GetTypeId() āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻž
TcpSocket):
.AddAttribute ("āĻāĻ¨āĻā§āĻļāĻ¨ āĻāĻāĻ¨ā§āĻĄā§",
"Tcp āĻāĻ¨āĻā§āĻļāĻ¨ āĻāĻāĻ¨ā§āĻĄā§ (āĻŦāĻžāĻāĻ)",
UintegerValue (1),
MakeUintegerAccessor (&TcpSocket::m_cWnd),
MakeUintegerChecker ())
āĻāĻāĻ¨, āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ TcpSocket āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯ā§āĻŽāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¯ā§āĻ āĻ¨āĻž āĻāĻ°ā§āĻ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĨ¤
āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĒāĻĄāĻŧāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ
āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻŦāĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ°āĻāĻžāĻŦ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŋ āĻ¯āĻŋāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ ns-3āĨ¤ āĻāĻŋ
āĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§?
āĻāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ, āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ ns3::āĻŽāĻžāĻ āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ, āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ,
āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻ¤āĻžāĻ° āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻžāĻ° āĻļā§āĻ°ā§āĻŖā§ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤, ns3::āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻŽāĻĄā§āĻ˛āĨ¤ āĻŽāĻ§ā§āĻ¯ā§ my-mobility.h
āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛:
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
āĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻāĻ āĻāĻŽāĻ°āĻž āĻā§āĻˇāĻŖāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ GetTypeId () āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ-āĻ˛āĻžāĻāĻ¨ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨
āĻā§āĻˇāĻŖāĻž:
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
/ **
* āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨.
* \ āĻ āĻŦāĻā§āĻā§āĻ TypeId āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨āĨ¤
*/
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻāĻŋ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻ¸āĻāĻā§āĻāĻž āĻŽāĻ¤ āĻĻā§āĻāĻžāĻŦā§ my-mobility.cc
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĢāĻžāĻāĻ˛:
NS_OBJECT_ENSURE_REGISTERED (āĻŽāĻžāĻ āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ);
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
āĻŽāĻžāĻāĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ::āĻā§āĻāĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::MyMobility")
.SetParent ()
.SetGroupName ("āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž")
.AddConstructor ()
.AddAttribute ("āĻ¸ā§āĻŽāĻžāĻ¨āĻž",
"āĻā§āĻ°ā§āĻ āĻāĻ˛āĻžāĻāĻžāĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĨ¤",
āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ¨ (āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° (0.0, 0.0, 100.0, 100.0)),
MakeRectangleAccessor (&MyMobility::m_bounds),
MakeRectangleChecker ())
.AddAttribute ("āĻ¸āĻŽāĻ¯āĻŧ",
"āĻāĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ āĻāĻŦāĻ āĻāĻ¤āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤",
āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻžāĻ¨ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (1.0)),
MakeTimeAccessor (&MyMobility::m_modeTime),
MakeTimeChecker ())
// āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ (āĻāĻ°ā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°)āĨ¤
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻ¨āĻž āĻāĻžāĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻ˛ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻšāĻ
āĻĨā§āĻā§ ns3::āĻ āĻŦāĻā§āĻā§āĻ, āĻāĻŦāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ āĻā§āĻ˛āĻžāĻ¸ āĻ¸ā§āĻ āĻāĻ°āĻŋ ns3::āĻ āĻŦāĻā§āĻā§āĻ āĻ¸āĻā§āĻā§
.SetParent ().
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ˛āĻā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻŋāĻ¤:
¡ āĻĄāĻžāĻāĻā§ āĻ¨āĻž NS_OBJECT_ENSURE_REGISTERED ()
¡ āĻāĻ˛ āĻāĻ°āĻā§ āĻ¨āĻž āĻ¸ā§āĻ āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ () āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻŦāĻž āĻā§āĻ˛ āĻāĻžāĻāĻĒ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ˛ āĻāĻ°āĻžāĨ¤
¡ āĻāĻ˛ āĻāĻ°āĻā§ āĻ¨āĻž āĻ ā§āĻ¯āĻžāĻĄāĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° () āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻŦāĻž āĻā§āĻ˛ āĻāĻžāĻāĻĒ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ˛ āĻāĻ°āĻžāĨ¤
¡ āĻāĻ° āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻāĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§
¡ C++ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ-āĻ¯ā§āĻā§āĻ¯ C++ āĻāĻžāĻāĻĒāĻ¨ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻž
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋāĨ¤ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ "ns3::" āĻĻāĻ°āĻāĻžāĻ°.
āĻāĻ¸āĻŦ āĻā§āĻ˛ā§āĻ° āĻā§āĻ¨ā§āĻāĻŋāĻ āĻļāĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§ āĻ¨āĻž ns-3 āĻā§āĻĄāĻŦā§āĻ¸, āĻ¤āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§ āĻāĻāĻžāĻ§āĻŋāĻāĻŦāĻžāĻ° āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻāĻ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§ āĻāĻĻāĻ°ā§āĻļ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ¯āĻŋāĻ¨āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ˛ā§āĻā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻšāĻ¤ā§ āĻāĻžāĻ¨
āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĨā§āĻā§/āĻĨā§āĻā§ āĻ˛ā§āĻāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŽāĻžāĻ¨. āĻāĻ° āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§-āĻāĻāĻāĻĄ āĻā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻĒāĻŋ/āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻā§āĻˇāĻŖāĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ src/āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž/āĻŽāĻĄā§āĻ˛ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ:
āĻļāĻŋāĻ°ā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻ˛
/ **
* āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻāĻāĻŋ 2d ââāĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°
*/
āĻŦāĻ°ā§āĻ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°
{
...
āĻĄāĻŦāĻ˛ xMin;
āĻĄāĻŦāĻ˛ xMax;
āĻĻā§āĻŦāĻŋāĻā§āĻŖ yMin;
āĻĄāĻŦāĻ˛ yMax;
};
āĻāĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻāĻ˛ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°, āĻā§āĻ˛āĻžāĻ¸ āĻā§āĻˇāĻŖāĻžāĻ° āĻ¨ā§āĻā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§āĻā§āĻ¯ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ āĻā§āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ:
std::ostream &operator << (std::ostream &os, const āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°);
std::istream & operator >> (std::istream &is, āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°);
ATTRIBUTE_HELPER_HEADER (āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°);
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĢāĻžāĻāĻ˛
āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧ (.cc āĻĢāĻžāĻāĻ˛), āĻā§āĻĄ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
ATTRIBUTE_HELPER_CPP (āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°);
std::ostream āĻāĻŦāĻ
āĻ āĻĒāĻžāĻ°ā§āĻāĻ° << (std::ostream &os, const āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°)
{
os << rectangle.xMin << "|" << rectangle.xMax << "|" << rectangle.yMin << "|"
<< rectangle.yMax;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻāĻ¸;
}
std::istream āĻāĻŦāĻ
āĻ āĻĒāĻžāĻ°ā§āĻāĻ° >> (std::istream &is, āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°)
{
char c1, c2, c3;
āĻšāĻ˛ >> rectangle.xMin >> c1 >> rectangle.xMax >> c2 >> rectangle.yMin >> c3
>> rectangle.yMax;
āĻ¯āĻĻāĻŋ (c1 != '|' ||
c2 != '|' ||
c3 != '|')
{
is.setstate (std::ios_base::failbit);
}
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ;
}
āĻāĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻā§āĻ˛āĻŋ āĻā§āĻŦāĻ˛ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĨā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§
("xMin|xMax|yMin|yMax") āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĨ¤ āĻŽāĻĄā§āĻ˛āĻžāĻ°āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°
āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ ns-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ ASCII āĻŦāĻž XML āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ a āĻ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ°āĻžāĻ¨āĨ¤ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°āĨ¤ āĻĻā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° is
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤
āĻ¯āĻĻāĻŋāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ src/config-store/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž
āĻāĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ ns-3 āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŦāĻ āĻā§āĻŖāĻžāĻŦāĻ˛ā§āĨ¤
āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ āĻ¨ā§āĻŦā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
src/config-store/examples/config-store-save.cc.
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ:
# "ns3/config-store-module.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻāĻāĻŋ āĻ¨āĻŽā§āĻ¨āĻž āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯ā§āĻ āĻāĻ°ā§ ConfigExample āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯:
āĻā§āĻ˛āĻžāĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) {
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::A")
.SetParent ()
.AddAttribute ("TestInt16", "āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻĒāĻžāĻ ā§āĻ¯",
IntegerValue (-2),
MakeIntegerAccessor (&A::m_int16),
MakeIntegerChecker ())
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
int16_t m_int16;
};
NS_OBJECT_ENSURE_REGISTERED (ConfigExample);
āĻāĻ°āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ:
Config::SetDefault ("ns3::ConfigExample::TestInt16", IntegerValue (-5));
Ptr a_obj = CreateObject ();
NS_ABORT_MSG_UNLESS (a_obj->m_int16 == -5,
"ConfigExample āĻāĻ° āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ Config::SetDefault āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž");
Ptr a2_obj = CreateObject ();
a2_obj->SetAttribute ("TestInt16", IntegerValue (-3));
IntegerValue iv;
a2_obj->GetAttribute ("TestInt16", iv);
NS_ABORT_MSG_UNLESS (iv. āĻĒāĻžāĻ¨ () == -3,
"SetAttribute āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ ConfigExample āĻāĻ° āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž");
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¯ā§ (āĻāĻāĻāĻŋ) āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋ āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĨ¤ āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ
āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ a ns3::āĻ¨ā§āĻĄ or ns3::āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻ āĻāĻ°āĻāĻŋ
āĻŽā§āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ°ā§āĻ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
Config::RegisterRootNamespaceObject (a2_obj);
āĻ˛ā§āĻāĻž
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻĻā§āĻāĻŋāĻ¤ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸, XML āĻāĻŦāĻ āĻāĻžāĻāĻāĻž āĻĒāĻžāĻ ā§āĻ¯āĨ¤ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ āĻŋāĻ āĻāĻā§ āĻāĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻāĻžāĻ˛āĻžāĻ¨ () āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ āĻŋāĻ āĻāĻā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§āĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°ā§āĻ° āĻāĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§: "āĻŽā§āĻĄ",
"āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ", āĻāĻŦāĻ "āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸". āĻŽā§āĻĄ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ "āĻāĻŋāĻā§āĻ āĻ¨āĻž") āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§ āĻāĻŋāĻ¨āĻž ns-3 āĻāĻāĻŋāĻ¤
āĻĒā§āĻ°ā§āĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ (āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ "āĻŽā§āĻĄ = āĻ˛ā§āĻĄ") āĻŦāĻž āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨
(āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ "āĻŽā§āĻĄ = āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨") āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ "") āĻ¯ā§āĻāĻžāĻ¨ā§ ConfigStore āĻĒāĻĄāĻŧāĻž āĻāĻāĻŋāĻ¤ āĻŦāĻž
āĻ¤āĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ āĻĢāĻžāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ "āĻāĻžāĻāĻāĻž āĻ˛ā§āĻāĻž") ConfigStore āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§
āĻĒā§āĻ˛ā§āĻāĻ¨ āĻā§āĻā§āĻ¸āĻ āĻŦāĻž āĻāĻā§āĻ¸āĻāĻŽāĻāĻ˛ ("āĻĢāĻžāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ = Xml")
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻžāĻ¯āĻŧ:
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("output-attributes.xml"));
Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
ConfigStore outputConfig;
outputConfig.ConfigureDefaults ();
outputConfig.ConfigureAttributes ();
// txt āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("output-attributes.txt"));
Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("RawText"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
ConfigStore outputConfig2;
outputConfig2.ConfigureDefaults ();
outputConfig2.ConfigureAttributes();
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ°āĻžāĻ¨ ();
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ§ā§āĻŦāĻāĻ¸ ();
āĻ āĻŋāĻ āĻāĻā§ āĻāĻ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻŦāĻ¸āĻžāĻ¨ā§ āĻ¨ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻāĻžāĻ˛āĻžāĻ¨ () āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĨ¤
āĻāĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ āĻŋāĻ āĻāĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻžāĻ¨ āĻ˛āĻ āĻāĻ°ā§ (āĻ āĻ°ā§āĻĨāĻžāĻ¤.
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§)āĨ¤
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ output-attributes.txt āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĻā§āĻā§āĻ¨:
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::RealtimeSimulatorImpl::SynchronizationMode "BestEffort"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::RealtimeSimulatorImpl::HardLimit "+100000000.0ns"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::PcapFileWrapper::CaptureSize "65535"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::PacketSocket::RcvBufSize "131072"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::ErrorModel::IsEnabled "true"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::RateErrorModel::ErrorUnit "EU_BYTE"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::RateErrorModel::ErrorRate "0"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::RateErrorModel::RanVar "Uniform:0:1"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::DropTailQueue::āĻŽā§āĻĄ "āĻĒā§āĻ¯āĻžāĻā§āĻ"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::DropTailQueue::MaxPackets "100"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::DropTailQueue::MaxBytes "6553500"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::Application::StartTime "+0.0ns"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::Application::StopTime "+0.0ns"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::ConfigStore::āĻŽā§āĻĄ "āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::ConfigStore::āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ "output-attributes.txt"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::ConfigStore::FileFormat "RawText"
āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns3::ConfigExample::TestInt16 "-5"
āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ RngSeed "1"
āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ RngRun "1"
āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻžāĻāĻĒ "ns3::DefaultSimulatorImpl"
āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ° āĻāĻžāĻāĻĒ "ns3::MapScheduler"
āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻā§āĻāĻ¸āĻžāĻŽ āĻ¸āĻā§āĻˇāĻŽ "āĻŽāĻŋāĻĨā§āĻ¯āĻž"
āĻŽāĻžāĻ¨ /$ns3::ConfigExample/TestInt16 "-3"
āĻāĻĒāĻ°ā§, āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻŽāĻžāĻ¨ ns-3 āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻŽāĻžāĻ¨ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ āĻŦāĻļā§āĻˇā§, āĻŽāĻžāĻ¨
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ ConfigExample āĻ¯ā§āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŋāĻ˛ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ, āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻŽāĻĄā§āĻ˛, āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ XML āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ output-attributes.xml:
āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻĄā§āĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°ā§āĻāĻžāĻāĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒāĻĄāĻŧāĻž
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŋ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻ¨āĻĒā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ˛ā§āĻāĻžāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŽā§āĻ˛ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ (āĻ¤āĻžāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ)āĨ¤
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("input-defaults.xml"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Load"));
Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
ConfigStore inputConfig;
inputConfig.ConfigureDefaults ();
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻ¨āĻĒā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ (āĻ āĻ°ā§āĻĨāĻžāĻ¤.
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻ¯āĻŧ) āĻŽāĻžāĻ¨, āĻāĻŦāĻ āĻŦā§āĻļā§āĻŦāĻŋāĻ āĻŽāĻžāĻ¨āĨ¤ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ
āĻāĻžāĻ°āĻŖ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻā§āĻ¨ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻāĻā§, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻ
āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻ¯ā§āĻŽāĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĨ¤ (āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°ā§āĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ āĻāĻāĻ°āĻŖ)āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ, āĻ¯āĻāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° āĻ°āĻžāĻˇā§āĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻŦā§,
āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻžāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ
āĻāĻāĻāĻĒā§āĻ ("āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ") "āĻŽā§āĻĄ" āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻāĻā§āĻ¸āĻā§āĻ°ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§āĻ¨
āĻ¯ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻ°āĻžāĻ¤ā§ āĻāĻžāĻ¯āĻŧ
āĻ¯āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ°āĻžāĻ¨ā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¯āĻāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ "āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ", "āĻŽā§āĻĄ", āĻāĻŦāĻ
"āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸" āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ, āĻšāĻ¯āĻŧ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻŦāĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĨ¤
āĻĒāĻĄāĻŧāĻž āĻ˛ā§āĻāĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻāĻžāĻ
āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ input-defaults.xml, āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ˛āĻŋāĻā§āĻ¨
āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ output-attributes.xml.:
# "ns3/config-store-module.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
...
int āĻĒā§āĻ°āĻ§āĻžāĻ¨ (...)
{
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("input-defaults.xml"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Load"));
Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
ConfigStore inputConfig;
inputConfig.ConfigureDefaults ();
//
// āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° Bind () āĻ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨
// āĻ°āĻžāĻ¨-āĻāĻžāĻāĻŽ, viacommand-line āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ
//
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨ cmd;
cmd.Parse (argc, argv);
// āĻ¸ā§āĻāĻāĻĒ āĻāĻĒā§āĻ˛āĻāĻŋ
...
// āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻ āĻŋāĻ āĻāĻā§ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°ā§āĻ¨::āĻāĻžāĻ˛āĻžāĻ¨ ()
Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("output-attributes.xml"));
Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
ConfigStore outputConfig;
outputConfig.ConfigureAttributes ();
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ°āĻžāĻ¨ ();
}
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ° āĻā§āĻ
ConfigStore āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ GTK-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĢā§āĻ°āĻ¨ā§āĻ āĻāĻ¨ā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻāĻāĻŋ GUI āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨. āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ |ns3|
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤
āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻāĻāĻ¨āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ libgtk āĻāĻŦāĻ libgtk-dev; āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦā§āĻ¨ā§āĻā§
āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻšāĻ˛:
$ sudo apt-get install libgtk2.0-0 libgtk2.0-dev
āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§, āĻ§āĻžāĻĒā§āĻ° āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests
---- āĻāĻā§āĻāĻŋāĻ NS-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ¸āĻžāĻ°āĻžāĻāĻļ:
āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ: āĻ¸āĻā§āĻˇāĻŽ
āĻĒāĻžāĻāĻĨāĻ¨ API āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨: āĻ¸āĻā§āĻˇāĻŽ
NS-3 āĻā§āĻ˛āĻŋāĻ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨: āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ
GtkConfigStore : āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ (āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ 'gtk+-2.0 >= 2.12' āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ)
āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž
āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests
$./waf
āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¨āĻ¨-GTK-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¸ā§āĻā§āĻ°
āĻāĻĄāĻŧāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯:
// āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻ āĻŋāĻ āĻāĻā§ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°ā§āĻ¨::āĻāĻžāĻ˛āĻžāĻ¨ ()
GtkConfigStore āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨;
config.ConfigureDefaults ();
config.ConfigureAttributes ();
āĻāĻāĻ¨, āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨, āĻāĻāĻāĻŋ GUI āĻĒāĻĒ āĻāĻĒ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ° āĻŽā§āĻ¨ā§ āĻā§āĻ˛āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¨ā§āĻĄ/āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻšāĻ˛.
āĻāĻŦāĻŋāĻˇā§āĻ¯ā§ āĻāĻžāĻ
āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
¡ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻŋāĻ āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨āĨ¤
rng āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ āĻā§āĻĨāĻžāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨āĨ¤
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽāĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ āĻā§āĻ°āĻŽāĻŋāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ°ā§ āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧā§āĻ¨āĨ¤
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻžāĻŽ
āĻĒā§āĻ˛ā§āĻ¸āĻšā§āĻ˛ā§āĻĄāĻžāĻ° āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ
āĻ˛āĻāĻŋāĻ
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ āĻā§āĻ°āĻāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻŦāĻž āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛āĻāĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ () āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻž
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ NS_LOG āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻāĻ.
āĻ˛āĻāĻŋāĻ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻŦāĻŋāĻ˛ā§āĻĄā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž ns-3. āĻ˛āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻ
āĻāĻ° (āĻĄāĻŋāĻĢāĻ˛ā§āĻ) āĻĄāĻŋāĻŦāĻžāĻ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ ns-3.
āĻ˛āĻāĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻāĻāĻ āĻĨāĻžāĻāĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¸ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻā§āĻ¨ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻā§āĻ¯āĻŧ āĻ¨āĻž
āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻāĻŋāĻ āĻāĻ° āĻāĻĒāĻ°ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻĄ, āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
ns-3 āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻā§āĻ¨ā§āĻ āĻ˛āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻ¨āĻž āĻŦāĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻā§āĻĄ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻĨā§āĻā§ Ipv4L3Protocol::IsDestinationAddress():
āĻ¯āĻĻāĻŋ (āĻ āĻŋāĻāĻžāĻ¨āĻž == iaddr.GetBroadcast ())
{
NS_LOG_LOGIC ("āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž)");
āĻ¸āĻ¤ā§āĻ¯ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž;
}
āĻ˛āĻāĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ Ipv4L3 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ¯āĻŧ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž or
āĻāĻĒāĻ°ā§ (āĻ˛āĻā§āĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨ā§āĻā§ āĻĻā§āĻā§āĻ¨), āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§; āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻž
āĻĻāĻŽāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻ¤āĻž āĻāĻāĻāĻĒā§āĻ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ˛āĻ āĻāĻāĻāĻĒā§āĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻ¸ā§āĻ āĻāĻ°ā§
NS_LOG āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻāĻ; āĻ¯ā§āĻŽāĻ¨:
$NS_LOG="*" ./waf --āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻžāĻ˛āĻžāĻ¨
āĻāĻžāĻ˛āĻžāĻŦā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻāĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻš āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĨ¤ (āĻāĻ° āĻŦāĻŋāĻļā§āĻˇāĻ¤ā§āĻŦ NS_LOG
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§.)
āĻĒā§āĻĨāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ°āĻ āĻĻāĻžāĻ¨āĻžāĻĻāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
$ NS_LOG="Ipv4L3Protocol" ./waf --āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ˇ
āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ°āĻ āĻāĻĒāĻ¯ā§āĻā§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ˛āĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻ¸ā§āĻĒāĻˇā§āĻ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž, āĻ¯ā§āĻŽāĻ¨ in
āĻĻā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ:
āĻā§āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);
...
(āĻ āĻ°ā§āĻĨ LOG_LEVEL_INFO, āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻŽāĻžāĻ¨, āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤)
NS_LOG āĻŦāĻžāĻā§āĻ¯ āĻāĻ āĻ¨
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° NS_LOG āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ˛āĻ
āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ `:' āĻ āĻā§āĻˇāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
$ NS_LOG=" : ..."
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻĒāĻ¤āĻžāĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ:
$ NS_LOG=" = | ...: ..."
āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻāĻŦāĻ āĻ¸ā§āĻ¤āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻā§āĻāĻŋāĻ āĻāĻŋāĻ¨āĻž
āĻ¤āĻĨā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¨ā§āĻĄ, āĻĢāĻžāĻāĻļāĻ¨
āĻ¨āĻžāĻŽ, āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĨ¤
āĻ˛āĻāĻŋāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ āĻŦā§āĻāĻžāĻ¯āĻŧ .cc āĻĢāĻžāĻāĻ˛, āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĢāĻžāĻāĻ˛āĨ¤
āĻāĻŋāĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ˛āĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§,
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻāĻ˛āĻ¨ āĻāĻāĻ¨āĻŋāĻ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻā§āĻˇā§āĻ ā§āĻŦāĻĻā§āĻ§, āĻ¯ā§āĻŽāĻ¨ ns-3
āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻā§āĻĄ:
WifiHelper wifiHelper;
wifiHelper.EnableLogComponents ();
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° NS_LOG āĻ˛āĻ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ `*' āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻŦā§āĨ¤
āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§, āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻŦā§:
$ NS_LOG="āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ-āĻ¤āĻžāĻ˛āĻŋāĻāĻž" ./waf --run ...
$ NS_LOG="foo" # āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻā§āĻ¨ā§ āĻ˛āĻ-āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§ āĻ¨āĻž
āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻ°ā§āĻŽāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ¤āĻžāĻāĻž āĻŽā§āĻĻā§āĻ°āĻŖ āĻāĻ°āĻŦā§
āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ-āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°. āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĢāĻ°ā§āĻŽāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻ˛āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻā§āĻā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨.
āĻ¨āĻŋāĻ°ā§āĻĻāĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ āĻāĻā§āĻāĻ¤āĻž āĻ āĻĒāĻļāĻ¨ āĻ¸āĻŽā§āĻš
āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ "āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§āĻ°" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤, āĻ¯āĻž āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, NS_LOG_LOGIC(..) āĻ¤ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ LOG_LOGIC
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻ¨āĻžāĻŽ āĻ§ā§āĻ°ā§āĻŦāĻ:
âââââââââââââââââŦâââââââââââââââââââââââââââââââââ. ââ
â āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ â āĻ āĻ°ā§āĻĨ â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_NONE â āĻĄāĻŋāĻĢāĻ˛ā§āĻ, āĻā§āĻ¨ā§ āĻ˛āĻāĻŋāĻ āĻ¨ā§āĻ âā§ˇ
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_ERROR â āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ°ā§āĻ¤āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_WARN â āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_DEBUG â āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_INFO â āĻ¤āĻĨā§āĻ¯āĻŽā§āĻ˛āĻ â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_FUNCTION â āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ°ā§āĻ¸āĻŋāĻ â
âââââââââââââââââŧâââââââââââââââââââââââââââââââââ. ââ¤
âLOG_LOGIC â āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĢā§āĻ˛ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨
â â āĻĢāĻžāĻāĻļāĻ¨ â
âââââââââââââââââ´âââââââââââââââââââââââââââââââââ. ââ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻ¨ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ°ā§āĻ§ā§āĻŦāĻ¤āĻ¨āĨ¤ āĻāĻāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĻŋāĻŽā§āĻ˛āĻ āĻ˛āĻāĻŋāĻ "āĻ¸ā§āĻ¤āĻ°" āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž:
âââââââââââââââââââââŦâââââââââââââââââââââââââââââ ââââââ
âāĻ¸ā§āĻ¤āĻ° â āĻ āĻ°ā§āĻĨ â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_ERROR â āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° LOG_ERROR āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ â
â â āĻŦāĻžāĻ°ā§āĻ¤āĻžāĨ¤ â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_WARN â LOG_WARN āĻāĻŦāĻ āĻāĻĒāĻ°ā§. â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_DEBUG â LOG_DEBUG āĻāĻŦāĻ āĻāĻĒāĻ°ā§. â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_INFO â LOG_INFO āĻāĻŦāĻ āĻāĻĒāĻ°ā§. â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_FUNCTION â LOG_FUNCTION āĻāĻŦāĻ āĻāĻĒāĻ°ā§. â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_LOGIC â LOG_LOGIC āĻāĻŦāĻ āĻāĻĒāĻ°ā§. â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_LEVEL_ALL â āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸āĨ¤ â
âââââââââââââââââââââŧâââââââââââââââââââââââââââââ ââââââ¤
âLOG_ALL â āĻāĻ° āĻ¸āĻŽāĻžāĻ°ā§āĻĨāĻ LOG_LEVEL_ALL â
âââââââââââââââââââââ´âââââââââââââââââââââââââââââ ââââââ
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ āĻāĻŦāĻ āĻ¸ā§āĻ¤āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ NS_LOG āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛
āĻāĻ āĻā§āĻā§āĻ¨:
âââââââââââŦââââââââââââââââââââ
âāĻļā§āĻ°ā§āĻŖāĻŋ â āĻ¸ā§āĻ¤āĻ° â
âââââââââââŧââââââââââââââââââââ
âāĻā§āĻ˛ â āĻ¸ā§āĻ¤āĻ°_āĻ¤ā§āĻ°ā§āĻāĻŋ â
âââââââââââŧââââââââââââââââââââ
âāĻ¸āĻ¤āĻ°ā§āĻ â āĻ¸ā§āĻ¤āĻ°_āĻ¸āĻ¤āĻ°ā§āĻ â
âââââââââââŧââââââââââââââââââââ
âāĻĄā§āĻŦāĻžāĻā§ āĻāĻ°āĻž â āĻ˛ā§āĻā§āĻ˛_āĻĄāĻŋāĻŦāĻžāĻ â
âââââââââââŧââââââââââââââââââââ
âāĻ¤āĻĨā§āĻ¯ â āĻ¸ā§āĻ¤āĻ°_āĻ¤āĻĨā§āĻ¯ â
âââââââââââŧââââââââââââââââââââ
âāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž â āĻ˛ā§āĻā§āĻ˛_āĻĢāĻžāĻāĻļāĻ¨ â
âââââââââââŧââââââââââââââââââââ
âāĻ¯ā§āĻā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž â āĻ¸ā§āĻ¤āĻ°_āĻ¯ā§āĻā§āĻ¤āĻŋ â
âââââââââââŧââââââââââââââââââââ
â â āĻ¸ā§āĻ¤āĻ°_āĻ¸āĻŽāĻ¸ā§āĻ¤ â
â â āĻ¸āĻŦ â
â â * â
âââââââââââ´ââââââââââââââââââââ
āĻāĻāĻāĻŋ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§āĻ° āĻā§āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ¯āĻŧ āĻ˛āĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ā§ˇ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
NS_LOG="*=āĻ¸āĻ¤āĻ°ā§āĻ" āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§ āĻ¨āĻž āĻā§āĻ˛. NS_LOG="*=level_debug" āĻāĻā§āĻāĻž
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻāĻāĻĒā§āĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĄā§āĻŦāĻžāĻā§ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻĒāĻ°ā§.
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻā§ `|' āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°:
NS_LOG="*=level_warn|āĻ¯ā§āĻā§āĻ¤āĻŋ" āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ°ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻāĻāĻĒā§āĻ āĻšāĻŦā§ āĻā§āĻ˛, āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻŦāĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž.
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° NS_LOG āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ `*' āĻāĻŦāĻ āĻ¸āĻŦ āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļāĻŦā§āĻĻ āĻ¸ā§āĻ¤āĻ°_āĻ¸āĻŽāĻ¸ā§āĻ¤.
āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ NS_LOG
$ NS_LOG=" :..."
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻšāĻ¯āĻŧ LOG_LEVEL_ALL.
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ āĻĒāĻļāĻ¨ āĻ¸āĻŽā§āĻš
āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻā§āĻĨāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻĻā§āĻā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻŋāĻ¸ā§ āĻāĻ¸ā§āĻā§ āĻ¤āĻž āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¨āĻŋāĻ°ā§āĻĻāĻ¯āĻŧāĻ¤āĻž.
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ (āĻ¯ā§āĻŽāĻ¨ āĻāĻ¨āĻžāĻŽ āĻ§ā§āĻ°ā§āĻŦāĻ) āĻšāĻ¯āĻŧ
âââââââââââââââââââŦâââââââââââââââââââââââââââââââ ââââ
âāĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸ āĻāĻŋāĻšā§āĻ¨ â āĻ āĻ°ā§āĻĨ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âLOG_PREFIX_FUNC â āĻāĻ˛āĻŋāĻ āĻāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻĒāĻ¸āĻ°ā§āĻ â
â â āĻĢāĻžāĻāĻļāĻ¨āĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âLOG_PREFIX_TIME â āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¸āĻ°ā§āĻāĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âLOG_PREFIX_NODE â āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻĒāĻ¸āĻ°ā§āĻ. â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âLOG_PREFIX_LEVEL â āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻĒāĻ¸āĻ°ā§āĻāĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âLOG_PREFIX_ALL â āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨āĨ¤ â
âââââââââââââââââââ´âââââââââââââââââââââââââââââââ ââââ
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻ¨ā§āĻā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ āĻĒāĻļāĻ¨ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ NS_LOG āĻāĻ āĻā§āĻā§āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛:
âââââââââââââââŦâââââââââââ
âāĻā§āĻā§āĻ¨ â āĻŦāĻŋāĻāĻ˛ā§āĻĒ â
âââââââââââââââŧââââââââââââââââ
âprefix_func â āĻĢāĻžāĻāĻļāĻ¨ â
âââââââââââââââŧââââââââââââââââ
âāĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¸āĻŽāĻ¯āĻŧ â āĻ¸āĻŽāĻ¯āĻŧ â
âââââââââââââââ´ââââââââââââââââ
âāĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¨ā§āĻĄ â āĻ¨ā§āĻĄ â
âââââââââââââââŧââââââââââââââââ
âāĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¸ā§āĻ¤āĻ° â āĻ¸ā§āĻ¤āĻ° â
âââââââââââââââŧââââââââââââââââ
âāĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¸āĻŽāĻ¸ā§āĻ¤ â āĻ¸āĻŦ â
â â * â
âââââââââââââââ´ââââââââââââââââ
āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ NS_LOG
$ NS_LOG=" :..."
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ āĻĒāĻļāĻ¨ āĻšāĻ¯āĻŧ LOG_PREFIX_ALL.
āĻ¨āĻŋāĻ°ā§āĻĻāĻ¯āĻŧāĻ¤āĻž āĻāĻĒāĻ¸āĻ°ā§āĻ
āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¸ā§āĻ¤āĻ° or āĻ¸ā§āĻ¤āĻ°.
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻŽāĻžāĻ¨ NS_LOG āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ (`*') āĻāĻŦāĻ āĻ¸āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ (= āĻ¸āĻŦ), āĻāĻŦāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋāĻā§ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¸āĻ°ā§āĻ (|āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸_āĻ˛ā§āĻā§āĻ˛).
$NS_LOG="*=all|prefix_level" ./waf --run āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ-āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°
[āĻ¤ā§āĻ°ā§āĻāĻŋ] āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž
[āĻ¸āĻ¤āĻ°ā§āĻ] āĻ¸āĻ¤āĻ°ā§āĻāĻŦāĻžāĻ°ā§āĻ¤āĻž
[āĻĄāĻŋāĻŦāĻžāĻ] āĻĄāĻŋāĻŦāĻžāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž
[INFO] āĻ¤āĻĨā§āĻ¯ āĻŦāĻžāĻ°ā§āĻ¤āĻž
[FUNCT] āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻžāĻ°ā§āĻ¤āĻž
[āĻ˛āĻāĻŋāĻ] āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž
āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¸āĻ°ā§āĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¸āĻŽāĻ¯āĻŧ or āĻ¸āĻŽāĻ¯āĻŧ. āĻāĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ
āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĨ¤
āĻ¨ā§āĻĄ āĻāĻĒāĻ¸āĻ°ā§āĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻĒāĻ¸āĻ°ā§āĻ_āĻ¨ā§āĻĄ or āĻ¨ā§āĻĄ.
āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻĒāĻ¸āĻ°ā§āĻ
āĻāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ prefix_func or āĻĢāĻžāĻāĻļāĻ¨.
NS_LOG āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ
āĻ˛āĻ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ `*' āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° *=.
āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ `*' āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļāĻŦā§āĻĻ āĻ¸āĻŦ. āĻāĻāĻž āĻ¯ā§ āĻā§āĻ¨ āĻāĻā§ āĻāĻāĻ¤ā§ āĻšāĻŦā§
`|' āĻ āĻā§āĻˇāĻ° āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ =*,
or =*|.
āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ `*' āĻŦāĻž āĻā§āĻā§āĻ¨ āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¤ā§ āĻšāĻŦā§ āĻĒāĻ°ā§ a
`|' āĻāĻ°āĻŋāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ āĻŦāĻž āĻ¸ā§āĻ¤āĻ° āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
= |*.
āĻ¸āĻŽā§āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ ** āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§; āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
=**.
āĻāĻŦāĻžāĻ°-āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ *** āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĨ¤
āĻāĻ āĻ¸āĻŦ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯:
$NS_LOG="***" ... $NS_LOG="*=all|*" ... $NS_LOG="*=*|āĻ¸āĻŽāĻ¸ā§āĻ¤" ...
$NS_LOG="*=**" ... $NS_LOG="*=level_all|*" ... $NS_LOG="*=*|prefix_all" ...
$NS_LOG="*=*|*"...
āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž: āĻāĻŽāĻ¨āĻāĻŋ āĻ¤ā§āĻā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ-āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻ° āĻ¸āĻžāĻĨā§ 46K āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻŦā§āĻļāĻŋ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
NS_LOG="***"!
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ¯ā§āĻ āĻ˛āĻāĻŋāĻ āĻĨā§āĻā§ āĻ¤ā§āĻŽāĻžāĻ° āĻā§āĻĄ
āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄā§ āĻ˛āĻāĻŋāĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻā§āĻŦāĻ āĻ¸āĻšāĻ:
1. āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°ā§āĻ¨ NS_LOG_COMPONENT_DEFINE (...); āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3.
āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤) āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
NS_LOG_COMPONENT_DEFINE ("Ipv4L3Protocol");
...
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ Ipv4L3 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻāĻāĻŋ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§āĨ¤
(āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻŦāĻž āĻŦāĻžāĻāĻ°ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĻāĻŋ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3, āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻā§āĻĄāĻŦā§āĻ¸ āĻā§āĻĄāĻŧā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽā§āĻ˛ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻŋāĻ˛
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻŦāĻžāĻšāĻŋāĻ°ā§ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¸ā§āĻā§āĻĒā§āĨ¤)
2. āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻĄāĻŋāĻ¤ā§ āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ (āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻāĻ˛) āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻ˛āĻāĻŋāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§
āĻ˛āĻāĻŋāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻšāĻ¯āĻŧ
âââââââââââââââââŦâââââââââââââââââââ
â āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§ â āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_NONE â (āĻā§āĻ¨āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ) â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_ERROR â NS_LOG_ERROR (...); â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_WARN â NS_LOG_WARN (...); â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_DEBUG â NS_LOG_DEBUG (...); â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_INFO â NS_LOG_INFO (...); â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_FUNCTION â NS_LOG_FUNCTION (...); â
âââââââââââââââââŧââââââââââââââââââââââââââââ
âLOG_LOGIC â NS_LOG_LOGIC (...); â
âââââââââââââââââ´âââââââââââââââââââââââ
āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻĒā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻž āĻāĻŋāĻā§ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ std::out, āĻ¯ā§āĻāĻĻāĻžāĻ¨
by << āĻ āĻĒāĻžāĻ°ā§āĻāĻ°, āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤:
void MyClas::āĻā§āĻ āĻāĻ°ā§āĻ¨ (int value, char * āĻāĻāĻā§āĻŽ)
{
NS_LOG_FUNCTION (āĻāĻ << arg << āĻāĻāĻā§āĻŽ);
āĻ¯āĻĻāĻŋ (arg > 10)
{
NS_LOG_ERROR ("āĻāĻžāĻ°āĻžāĻĒ āĻŽāĻžāĻ¨" << āĻŽāĻžāĻ¨ <
" āĻā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ " << āĻ¨āĻžāĻŽ << "!");
}
...
}
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ NS_LOG_FUNCTION āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ ` āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ¯āĻŧ,' (āĻāĻŽāĻž-āĻ¸ā§āĻĒā§āĻ¸) āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻāĻžāĻāĻ
āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĨ¤ āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ˛āĻāĻŋāĻ āĻ¸āĻšāĻ āĻāĻ°ā§; āĻļā§āĻ§ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž
āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ << āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§āĨ¤
āĻļāĻ°ā§āĻ¤āĻšā§āĻ¨ āĻ˛āĻāĻŋāĻ
āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§, NS_LOG_UNCOND (...); āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ˛āĻ āĻāĻ°āĻŦā§, āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ˛āĻ-āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻā§āĻ¨ā§ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ¯āĻŧ āĻ¸āĻā§āĻˇāĻŽ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻā§āĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ°āĨ¤ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻ˛āĻāĻŋāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄāĻŋāĻŦāĻžāĻ āĻŦāĻŋāĻ˛ā§āĻĄā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§; āĻāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻĄ āĻŦāĻŋāĻ˛ā§āĻĄā§ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨ NS_LOG_FUNCTION (āĻāĻ << args...); āĻāĻ āĻ¸āĻšāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻā§āĻ°ā§āĻ¸āĻŋāĻāĨ¤
¡ āĻŦā§āĻ¯āĻ¤ā§āĻ¤: āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻŦāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻ˛āĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻāĻŦā§
āĻ āĻ¸ā§āĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻāĻžāĻ°āĻĢā§āĻ˛ā§āĨ¤
āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻžāĻĄāĻŧāĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨: NS_LOG_FUNCTION (āĻāĻ);
¡ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯:
āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻā§āĻā§ NS_LOG_FUNCTION (...); āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻā§āĻ° āĻŽāĻ¤.
¡ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻĄāĻŧāĻž NS_LOG_FUNCTION_NOARGS ();
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ NS_LOG_ERROR āĻā§āĻ°ā§āĻ¤āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻāĻŋ āĻ āĻŦā§āĻ§ āĻāĻ°ā§
āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄāĨ¤
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ NS_LOG_WARN āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ¸āĻāĻļā§āĻ§āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŋāĻā§ āĻāĻā§āĻāĻŋāĻ¤ āĻĻāĻŋāĻ¨
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ¤āĻŋ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
¡ NS_LOG_DEBUG āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ ad āĻšāĻ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻŦā§āĻāĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧāĨ¤
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ NS_LOG_INFO āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¯ā§āĻŽāĻ¨ a āĻāĻ° āĻāĻāĻžāĻ°
āĻāĻāĻŋ āĻĨā§āĻā§ āĻ¯ā§āĻ / āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄā§āĻāĻž āĻāĻ āĻ¨āĨ¤
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ NS_LOG_LOGIC āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¯ā§āĻā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻļāĻžāĻāĻž āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻ¤ā§.
¡ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ˛āĻāĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻĄāĻāĻŋ āĻāĻā§āĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¨
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻžāĻ˛ā§ (āĻ¯ā§āĻŽāĻ¨ NS_LOG="***").
āĻ°āĻāĻ¨āĻž
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ ns-3. āĻŽāĻ§ā§āĻ¯ā§
āĻ āĻ§āĻŋāĻāĻžāĻāĻļ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻŋāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻā§āĻŦāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻĨāĻžāĻāĻŦā§
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŦā§āĻˇāĻ āĻāĻāĻāĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§āĻ¨
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻ°āĻŖ āĻāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨
āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ¯āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻāĻ°āĻŖ āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻ˛ āĻāĻ°āĻ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨. āĻāĻŋāĻ¤āĻ°ā§ ns-3, āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻž āĻāĻāĻāĻ¨ āĻāĻŦā§āĻˇāĻāĻā§ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻ¤āĻž āĻšāĻ˛ āĻā§āĻ°ā§āĻ¸āĻŋāĻ
āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻ°āĻāĻ¨āĻž āĻĒā§āĻ°ā§āĻ°āĻŖāĻž
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĨā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻ āĻ¨ā§āĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§. āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸ā§āĻāĻž āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛
āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻāĻāĻĒā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§, āĻ¯ā§āĻŽāĻ¨,
# āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
...
int āĻĒā§āĻ°āĻ§āĻžāĻ¨ ()
{
...
std::cout << "x āĻāĻ° āĻŽāĻžāĻ¨ āĻšāĻ˛ " << x << std::endl;
...
}
āĻāĻāĻŋ āĻā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻ°ā§
āĻāĻāĻŋāĻ˛, āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻŦāĻ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻāĻŦāĻ āĻĒāĻžāĻ°āĻĢāĻ°ā§āĻŽ āĻāĻ°āĻžāĻ° āĻāĻžāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻˇ āĻāĻ°āĻŦā§āĻ¨
āĻāĻāĻāĻĒā§āĻā§ āĻāĻŖāĻ¨āĻž āĻāĻ āĻŋāĻ¨ āĻĨā§āĻā§ āĻāĻ āĻŋāĻ¨ āĻšāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ tidbit āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻ°
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¸āĻŦ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻā§āĻ¨ āĻŽāĻžāĻ¨āĻ¸āĻŽā§āĻŽāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻ
āĻāĻ āĻāĻāĻāĻĒā§āĻā§āĻ°, āĻ¤āĻžāĻ āĻāĻāĻāĻĒā§āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¸ā§āĻŽāĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻžāĻĄāĻŧāĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻ āĻŦāĻļā§āĻˇā§,
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻ¨ā§āĻĄāĻāĻāĻĨ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĻā§ āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ° āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻāĻžāĻ°ā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž.
ns-3 āĻ˛āĻāĻŋāĻ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ˛āĻāĻŋāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻŽā§āĻā§āĻ āĻā§āĻŦ āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻ¨āĻ¯āĻŧāĨ¤ āĻ˛āĻāĻŋāĻ
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻāĻŋ āĻ āĻĒā§āĻā§āĻˇāĻžāĻā§āĻ¤ āĻā§āĻāĻ¤āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ°āĨ¤
āĻāĻāĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĨāĻžāĻāĻž āĻŦāĻžāĻā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻ¨āĻā§ āĻŽā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒā§āĻāĻāĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°
āĻŽā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻ¨āĻž āĻāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ¨āĨ¤ āĻāĻŽāĻ¨ āĻāĻŋ
āĻāĻžāĻ˛ āĻšāĻŦā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ āĻŦāĻšāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻŦāĻž āĻāĻāĻāĻŋā§ˇ
āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻāĻ¨āĻž āĻāĻā§āĻā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¸ā§āĻ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻāĻšāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻšāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻĻā§āĻļā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ° āĻāĻĒāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ ns-3 āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽāĨ¤ āĻāĻĒāĻ¨āĻŋ
āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻāĻā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ° āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻāĻŦāĻ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻā§āĻ¨āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻ¸ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻŦāĻ
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻā§āĻ; āĻ¸āĻŋāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻšāĨ¤
āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻšāĻ˛ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¯āĻž āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻāĻā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ā§ˇ
āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĄā§āĻāĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻāĻ¨ a
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻāĻāĻŋ āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻā§āĻ°āĻšā§ āĻā§āĻ°ā§āĻ¸ sinks. āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ°āĻžāĻˇā§āĻā§āĻ°
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ TCP āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨āĻā§āĻļāĻ¨ āĻāĻāĻ¨ā§āĻĄā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻāĻŽ
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§.
āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¨āĻ¯āĻŧ; āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŦāĻļā§āĻ¯āĻ āĻā§āĻĄā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻā§āĻāĻ°ā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§
āĻ¯ā§ āĻāĻ¸āĻ˛ā§ āĻā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻā§āĻā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻā§ āĻ¨āĻž. āĻĻā§āĻ¯
āĻ¯ā§ āĻ¸āĻ¤ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ¤ā§āĻ° āĻšāĻ¯āĻŧ
āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻšāĻ˛ āĻā§āĻā§āĻ¤āĻžāĨ¤
āĻāĻ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻĨāĻžāĻāĻž āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻāĻŽāĻ¨ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻž āĻŽāĻĄā§āĻ˛ āĻ˛ā§āĻāĻā§āĻ°āĻž āĻŽāĻ¨ā§ āĻāĻ°ā§āĻ¨ āĻāĻĒāĻ¯ā§āĻā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¨āĻž āĻāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
āĻāĻ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ, āĻāĻŋāĻā§āĻ āĻāĻāĻāĻĒā§āĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻŋāĻā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§, āĻāĻžāĻĄāĻŧāĻžāĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŽā§āĻ˛ āĻŦāĻž āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ˇ
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻā§āĻ°ā§āĻ¸ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻļā§āĻ¨ā§āĻ¯ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻā§āĻ°āĻžāĻšāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻ¨ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§ āĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻā§-āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¤āĻĨā§āĻ¯ āĻ˛āĻŋāĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻŦā§āĻ¨āĨ¤
āĻāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻā§-āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ˛āĻŋāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ "āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛" āĻšāĻ˛ āĻāĻāĻāĻŋ ns-3 āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ.
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻŋāĻāĻžāĻ āĻĨā§āĻā§ āĻ¸ā§āĻŽāĻ°āĻŖ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ āĻĻā§āĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻ˛āĻŋāĻ āĻĄāĻŋāĻāĻĒāĻ˛āĻŋāĻ āĻāĻ°ā§
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĢāĻžāĻāĻļāĻ¨. āĻāĻāĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻŽā§āĻ˛āĻ¤, āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ is āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻā§āĻ°ā§āĻ¸ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¤ā§ āĻāĻā§āĻ°āĻš āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻ¯ā§āĻ āĻāĻ°ā§
āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻˇā§āĻ āĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻāĻ¨āĻž āĻāĻāĻ˛ā§, āĻā§āĻ°ā§āĻ¸
āĻā§āĻ¸ āĻ¤āĻžāĻ° āĻāĻšā§āĻŦāĻžāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻļā§āĻ¨ā§āĻ¯ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ¸ā§āĻ¤ā§āĻ° āĻŦāĻ˛ā§
āĻāĻā§ āĻāĻā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°(āĻā§āĻ˛āĻŋ)
āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻŦāĻ˛ā§āĻāĻŋ āĻ¤āĻž āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻšāĻžāĻāĻāĻ¤ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻŦā§āĨ¤
# "ns3/object.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
# "ns3/uinteger.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
# "ns3/traced-value.h"" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
# "ns3/trace-source-accessor.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
# āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¨āĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
āĻ¯āĻžāĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻˇāĻŖāĻž. āĻĢāĻžāĻāĻ˛, āĻā§āĻ°ā§āĻ¸āĻĄ-āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§
āĻ¤āĻĨā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ¨ā§āĻ¯ āĻā§āĻˇāĻŖāĻž āĻ¯ā§ āĻŽāĻžāĻ¨ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻŽāĻžāĻ¨ā§.
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻŽāĻžāĻ¨ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋāĻā§ āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻ¨āĻ¯āĻŧ
āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŽāĻžāĻ¨ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻāĻĒāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻĒāĻ˛āĻŦā§āĻ§āĨ¤ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤
āĻĒā§āĻ˛ā§āĻāĻ¨-āĻāĻ˛ā§āĻĄ-āĻĄā§āĻāĻž (POD) āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ-āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§āĨ¤
āĻ āĻĒāĻžāĻ°ā§āĻāĻ°=, āĻ āĻĒāĻžāĻ°ā§āĻāĻ°++, āĻ āĻĒāĻžāĻ°ā§āĻāĻ°--, āĻ āĻĒāĻžāĻ°ā§āĻāĻ°+, āĻ āĻĒāĻžāĻ°ā§āĻāĻ°==, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤
āĻāĻ āĻ¸āĻŦ āĻŽāĻžāĻ¨ā§ āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§
āĻ¯āĻžāĻ°āĻž āĻ āĻĒāĻžāĻ°ā§āĻāĻ°.:
āĻā§āĻ˛āĻžāĻ¸ MyObject: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("MyObject")
.SetParent (āĻ āĻŦāĻā§āĻā§āĻ::GetTypeId ())
.AddConstructor ()
.AddTraceSource ("MyInteger",
"āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨āĨ¤",
MakeTraceSourceAccessor (&MyObject::m_myInt))
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
MyObject () {}
āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ m_myInt;
};
āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻā§āĻā§āĻ¤, āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻāĻā§āĻ˛āĻŋ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§,
āĻāĻāĻāĻŋ āĻšāĻ¤ā§ āĻšāĻŦā§ ns-3 āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŦāĻ¸āĻŦāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻĻā§āĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ˛āĻžāĻāĻ¨
āĻā§āĻĄ āĻšāĻ˛ .TraceSource āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻļā§āĻ°ā§āĻˇ XNUMX āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ HR āĻāĻā§āĻ¸āĻŋāĻ˛ā§āĻ¨ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄā§āĻ° āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ āĻā§āĻˇāĻŖāĻž
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° .TraceSource āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ "āĻšā§āĻ" āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĒā§āĻĨāĻŋāĻŦā§āĻ° āĻŦāĻžāĻāĻ°ā§. āĻĻā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ āĻā§āĻˇāĻŖāĻž āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻ°ā§
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤:
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
IntTrace (Int oldValue, Int newValue)
{
std::cout << "āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ " << oldValue << " āĻĨā§āĻā§ " << newValue << std::endl;
}
āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻā§āĻ° āĻ¸āĻāĻā§āĻāĻžāĨ¤ āĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¯āĻāĻ¨āĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻāĻāĻāĻ¨ āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ is
āĻ¨āĻŋāĻˇā§āĻĒāĻ¨ā§āĻ¨.:
āĻā§āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
Ptr myObject = CreateObject ();
myObject->TraceConnectWithoutContext ("MyInteger", MakeCallback(&IntTrace));
myObject->m_myInt = 1234;
}
āĻāĻ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻā§, āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¯ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ° āĻ¤āĻž āĻšāĻ˛ āĻ¯ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻā§āĻŦāĻ¨.
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ, TraceConnectWithout Context, āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ āĻ¨ āĻāĻ°ā§
āĻā§āĻ¸ āĻāĻŦāĻ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ. āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĨ¤ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ°
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦāĻŋāĻāĻžāĻ āĻ¯āĻž āĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻŦāĻŋāĻļā§āĻˇ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§ "āĻĢāĻžāĻ¯āĻŧāĻžāĻ°" āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° (++, --, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)
āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°() āĻāĻ¸āĻ˛ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻ¤ā§. āĻĻā§āĻ¯ TraceConnectWithout Context,
āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¨ā§āĻ¯āĻŧ āĻ¯āĻž āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸ā§āĻ¤ā§āĻ°. āĻāĻ¸ā§āĻ¨ āĻāĻāĻ¨āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻ¨āĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧāĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻ˛āĻžāĻāĻ¨,:
myObject->m_myInt = 1234;
āĻāĻāĻāĻŋ āĻāĻšā§āĻŦāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°= āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻāĻĒāĻ° m_myInt āĻ¸āĻā§āĻā§
āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž 1234 āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§āĨ¤ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻĻā§āĻŦāĻžāĻ°āĻž
āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§) āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻ¤ā§ āĻ¯āĻž āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨ā§āĻ¯āĻŧ
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ -- āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§ āĻĨāĻžāĻāĻž āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ā§ˇ āĻ āĻŋāĻ āĻ¤āĻžāĻ
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° -- āĻāĻ¨ā§āĻā§āĻ°āĻžāĻ¸.
āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻšāĻ˛, āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽā§, āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¯āĻž āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻ
āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ§āĻ°āĻ¨
āĻ¤āĻĨā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻĻā§āĻ¯
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸āĻā§ "āĻšāĻŋāĻ" āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ā§ āĻāĻāĻāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš āĻāĻ°āĻā§ āĻ¯āĻž āĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ° āĻĢāĻ˛ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻāĻ¤ā§āĻ¸ā§ āĻāĻā§āĻ°āĻš āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§ā§ˇ
āĻāĻ¤ā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§ā§ˇ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĨā§āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻĨā§āĻā§ āĻāĻŋāĻšā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° TraceConnectWithout Context āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻāĻ˛ āĻāĻ¸āĻ˛ā§ āĻā§āĻŦ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻā§āĻŦ āĻāĻŽāĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ°ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻ¨āĻĢāĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻ āĻĒāĻĨ.
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻžāĻ¯āĻŧ (āĻā§āĻšā§āĻ¤
āĻĨā§āĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ/tcp-large-transfer.cc):
void CwndTracer (uint32_t oldval, uint32_t newval) {}
...
Config::ConnectWithoutContext (
"/NodeList/0/$ns3::TcpL4Protocol/SocketList/0/CongestionWindow",
āĻŽā§āĻāĻāĻ˛āĻŦā§āĻ¯āĻžāĻ (&CwndTracer));
āĻāĻ āĻā§āĻŦ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§. āĻāĻāĻŋ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸
āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯;
āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻŖ āĻ¨āĻžāĻŽ, āĻāĻāĻāĻŋ āĻĒāĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻāĻāĻŋ āĻš'āĻ˛ āĻĒāĻĨāĻāĻŋ āĻĒāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻĒāĻĄāĻŧāĻžāĨ¤ āĻĒāĻĨā§āĻ° āĻļā§āĻˇ āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻ āĻšāĻ¤ā§ āĻšāĻŦā§
an āĻā§āĻŖ āĻāĻāĻāĻ¨ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯. āĻāĻ¸āĻ˛ā§, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŋāĻ˛ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¯ā§ āĻāĻā§
"āĻāĻ āĻāĻžāĻ¨āĻžāĻ˛āĻž" āĻā§āĻŖ āĻ¸āĻšāĻ (āĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§), āĻāĻĒāĻ¨āĻŋ āĻ āĻŋāĻ āĻāĻ āĻŽāĻ¤ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ:
void CwndTracer (uint32_t oldval, uint32_t newval) {}
...
theObject->TraceConnectWithoutContext ("CongestionWindow", MakeCallback (&CwndTracer));
āĻāĻāĻž āĻ¯ā§ āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻāĻ Config::ConnectWithoutContext āĻ āĻŋāĻ āĻ¤āĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻĨ āĻ¨ā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ
āĻĒāĻžāĻĨā§āĻ° āĻļā§āĻˇā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻļā§āĻˇ āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻā§āĻŖ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇā§
āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ° āĻāĻŋ āĻšāĻ¯āĻŧ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻšāĻžāĻāĻāĻž āĻ¯āĻžāĻ.
āĻĒāĻĨā§āĻ° āĻ āĻā§āĻ°āĻŖā§ "/" āĻ āĻā§āĻˇāĻ°āĻāĻŋ āĻāĻāĻāĻŋ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ā§ˇ āĻ āĻ¨ā§āĻ¯āĻ¤āĻŽ
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻšāĻ˛ "āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻ" āĻ¯āĻž āĻ¸āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻĄ. āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻāĻā§āĻŽ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ
"/NodeList/0" āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻŋāĻ°ā§āĻĨ āĻ¨ā§āĻĄāĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧāĨ¤
āĻāĻ āĻ¨ā§āĻĄ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ Ptr āĻāĻŦāĻ āĻ¤āĻžāĻ an āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ ns3::āĻ āĻŦāĻā§āĻā§āĻ.
āĻ āĻŦāĻā§āĻā§āĻ-āĻŽāĻĄā§āĻ˛ āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, ns-3 āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻŽāĻĄā§āĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻĻā§āĻ¯
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻžāĻĨ āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻ "$" āĻ āĻā§āĻˇāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¯āĻž a āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ GetObject āĻāĻ˛ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻāĻāĻā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§. āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻāĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¨ā§āĻĄā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛
āĻāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻ˛ā§āĻā§āĻ˛ āĻĢā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĨ¤ āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻšāĻ˛ ns3::TcpL4Protocol''āĨ¤
āĻāĻāĻ¨ āĻĻā§āĻ¯ ``āĻā§āĻāĻ āĻŦāĻā§āĻā§āĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° TcpL4 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻā§āĻ˛āĻžāĻ¸ "āĻ¸āĻā§āĻāĻ˛āĻŋāĻ¸ā§āĻ" āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¸āĻā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻā§āĻ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ ns3::āĻ āĻŦāĻā§āĻā§āĻ āĻ¨āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ°ā§āĻĒ āĻāĻ°āĻž. āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻā§āĻŽ
āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻŽāĻ¤ā§āĻ āĻ¸āĻā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸ā§āĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ "āĻ¸āĻā§āĻāĻ˛āĻŋāĻ¸ā§āĻ/0"
āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻā§ āĻāĻŋāĻ°ā§āĻĨ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻŋāĻ°ā§āĻĨ āĻ¸āĻā§āĻāĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ --
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨ā§āĻĄāĨ¤
āĻāĻ āĻ¸āĻā§āĻ, āĻ¯āĻž āĻāĻāĻāĻŋ āĻšāĻ¤ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻāĻ ns3::TcpSocketImpl āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§
"āĻāĻ¨āĻā§āĻ¸āĻ¨ āĻāĻāĻ¨ā§āĻĄā§" āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§. āĻĻā§āĻ¯
Config::ConnectWithoutContext āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻ°ā§,:
āĻŦāĻ¸ā§āĻ¤ā§->TraceConnectWithoutContext ("CongestionWindow", MakeCallback (&CwndTracer));
"āĻ¸āĻā§āĻāĻ˛āĻŋāĻ¸ā§āĻ/0" āĻĨā§āĻā§ āĻ āĻŦāĻā§āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻž āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻā§āĻ¸ -- CwndTracer.
āĻāĻāĻ¨, āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ āĻ¯āĻžāĻ¨āĻāĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§
TCP āĻ¸āĻā§āĻā§ āĻāĻāĻ¨ā§āĻĄā§, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻŦā§ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨
CwndTracer āĻāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻāĻ¨āĻā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻŽā§āĻĻā§āĻ°āĻŖ āĻŦāĻ˛āĻž āĻšāĻŦā§
āĻāĻžāĻ¨āĻ˛āĻž.
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻ°āĻāĻ¨āĻž āĻāĻĒāĻŋāĻāĻ
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸ā§āĻ¤āĻ° āĻ°āĻ¯āĻŧā§āĻā§:
¡ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻšāĻā§āĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻā§;
¡ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻž āĻāĻ° āĻŽā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻāĻ°ā§āĻ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ā§ˇ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°;
¡ āĻāĻ¨ā§āĻ¨āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ¤ā§āĻ¸ āĻāĻŦāĻ āĻ¸āĻŋāĻā§āĻ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŋāĻšā§āĻ¨ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĻā§āĻ§ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ "āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ
āĻāĻĒā§āĻ˛āĻāĻŋāĻ¸," āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ° āĻĻā§āĻā§āĻāĻŋ
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ (āĻĄāĻŋāĻāĻžāĻāĻ¸) āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻŋāĻ¤āĻ°ā§āĨ¤
āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻŦā§āĻāĻŋāĻ¤ā§āĻ°ā§āĻ¯ā§āĻ° āĻāĻŋāĻā§ āĻĻā§āĻā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŦā§āĻ¨:
pointToPoint.EnablePcapAll ("āĻ¸ā§āĻā§āĻ¨ā§āĻĄ");
pointToPoint.EnablePcap ("āĻ¸ā§āĻā§āĻ¨ā§āĻĄ", p2pNodes.Get (0)->GetId (), 0);
csma.EnablePcap ("āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ", csmaDevices.Get (0), āĻ¸āĻ¤ā§āĻ¯);
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr"));
āĻ¯āĻž āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻĻāĻŋāĻ, āĻ¸āĻŦāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻŽāĻĄā§āĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ°ā§āĻ¸-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻāĻāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻĻā§āĻā§ āĻ¨ā§āĻŦ
"āĻŦāĻĄāĻŧ āĻāĻŦāĻŋ" āĻ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ ns-3: āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĨ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻ¨ āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻā§
āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ, āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ pcap āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§
ns-3 āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻŽāĻĄā§āĻ˛, āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻŽāĻĄā§āĻ˛
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻāĻ° āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§, āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§
- - āĻ¨āĻžāĻŽāĻāĻ°āĻŖā§āĻ° āĻ°ā§āĻ¤āĻŋāĨ¤
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻ¨ āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĨ¤ āĻāĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ ns-3 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻŽāĻĄā§āĻ˛,
āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻŽāĻĄā§āĻ˛āĨ¤ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ, āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛
āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ - - āĻ¨āĻžāĻŽāĻāĻ°āĻŖā§āĻ° āĻ°ā§āĻ¤āĻŋāĨ¤
āĻā§āĻ°ā§āĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻ¤āĻžāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻĻā§āĻŦāĻŋ-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻĒāĻĄāĻŧā§āĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§
āĻ¸ā§āĻā§āĻˇā§āĻŽāĻ¤āĻž āĻ¯āĻž āĻāĻžāĻ°āĻāĻŋ āĻļā§āĻ°ā§āĻŖā§āĻā§ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ
āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻāĻ˛āĻā§ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĻāĻŋāĻ¨; āĻāĻŦāĻ āĻ¯āĻāĻ¨āĻ āĻ¸āĻŽā§āĻāĻŦ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻ āĻāĻā§
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
ââââââââââââââââââââââââââââââââââââ
â â pcap â ascii â
ââââââââââââââââââŧââââââŧââââââââââââ
âāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° â â â
ââââââââââââââââââŧââââââŧââââââââââââ
âāĻĒā§āĻ°āĻā§āĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° â â â
ââââââââââââââââââ´ââââââ´âââââ´âââââââ
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§āĨ¤ āĻ
āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§ āĻ¯āĻž āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻŽāĻŋāĻā§āĻ¸āĻŋāĻ¨ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻā§ āĻŦāĻŋāĻļā§āĻˇā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻāĻā§āĻ°āĻšāĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻ āĻāĻžāĻ°āĻāĻŋ āĻŽāĻžāĻŽāĻ˛āĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻ āĻ¨āĻŋāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¨āĻāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ āĻŽāĻŋāĻļā§āĻ°āĻŖ.
Pcap āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ pcap āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°āĻž
ns-3 āĻ¯āĻ¨ā§āĻ¤ā§āĻ°. āĻāĻŽāĻ°āĻž āĻāĻžāĻ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ-āĻāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢā§āĻ˛ā§āĻāĻžāĻ° āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĻ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸, āĻ¤āĻžāĻ āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¨āĻāĻ° āĻĻā§āĻā§ āĻ¨āĻžāĻ
at src/network/helper/trace-helper.h āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻĄāĨ¤
āĻļā§āĻ°ā§āĻŖā§ PcapHelperForDevice āĻāĻšāĻž āĻāĻāĻāĻŋ āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ ns-3 āĻ¯āĻ¨ā§āĻ¤ā§āĻ°. āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ
āĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° EnablePcapInternal (std::string prefix, Ptr nd, bool promiscuous) = 0;
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻā§āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§
āĻ¸ā§āĻ¤āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ PcapUserHelperForDevice āĻāĻŽāĻžāĻ¤ā§
āĻāĻ āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ˛āĻŋāĻ. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°
pcap āĻĒāĻĻā§āĻ§āĻ¤āĻŋ,:
void EnablePcap (std::string prefix, Ptr nd, bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž, bool explicitFilename = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§ PcapInternal āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ pcap
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻ° āĻ āĻ°ā§āĻĨ āĻā§ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻŦā§
āĻ¸āĻŽāĻ¸ā§āĻ¤ pcap āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻā§; āĻāĻŦāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻŦ āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻŦā§
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧā§ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ PcapInternal āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§āĨ¤
Pcap āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
void EnablePcap (std::string prefix, Ptr nd,
bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž, bool explicitFilename = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcap (std::string āĻāĻĒāĻ¸āĻ°ā§āĻ, std::string ndName,
bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž, bool explicitFilename = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcap (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NetDeviceContainer d,
bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcap (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NodeContainer n,
bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid,
bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcapAll (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§, āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ āĻļā§āĻ˛ā§āĻ˛ āĻ¯ā§
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĨā§āĻā§ āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻā§āĻ°ā§āĻ¸āĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ
āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻž. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§āĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§
(āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŽāĻŋāĻ¸āĻāĻŋāĻāĻ¯āĻŧāĻžāĻ¸ āĻŽā§āĻĄ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§) āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ°ā§ āĻāĻ˛. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
Ptr nd;
...
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", nd, āĻ¸āĻ¤ā§āĻ¯);
āĻ¤ā§ āĻĒā§āĻ°āĻŽāĻŋāĻ¸āĻāĻŋāĻāĻ¯āĻŧāĻžāĻ¸ āĻŽā§āĻĄ āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ° āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻŦā§ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ nd.
āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¸ā§āĻĒāĻˇā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻāĻāĻž āĻšāĻŦā§
āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§ PcapHelperForDevice āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻ¤ā§
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ; āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§...
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
Ptr āĻāĻāĻāĻŋāĻ¤ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯ Ptr āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤
āĻ āĻŋāĻ āĻāĻāĻāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
Ptr nd;
...
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", nd);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯
Ptr āĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧ. āĻāĻŦāĻžāĻ°, āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤
āĻ¨āĻžāĻŽāĻ¯ā§āĻā§āĻ¤ āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0" ...);
...
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "server/ath0");
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
NetDevice ContainerāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻžāĻāĻĒ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯
āĻ¸āĻ āĻŋāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ (āĻ¯ā§āĻŽāĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ°), āĻā§āĻ°ā§āĻ¸āĻŋāĻ
āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻžāĻ°, āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻšā§āĻŦāĻšā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤
āĻāĻ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
NetDeviceContainer d = ...;
...
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", d);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ NetDevices āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, āĻ¸ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ§āĻ°āĻ¨
āĻā§āĻ āĻāĻ°āĻž āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§), āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° n;
...
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", n);
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
ptrāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¨ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋ āĻāĻā§āĨ¤
helper.EnablePcap ("āĻāĻĒāĻ¸āĻ°ā§āĻ", 21, 1);
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§
āĻ¯ā§āĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤āĨ¤:
helper.EnablePcapAll ("āĻāĻĒāĻ¸āĻ°ā§āĻ");
Pcap āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨
āĻāĻĒāĻ°ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšāĻ˛ āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, pcap āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻāĻ°ā§ ns-3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĢāĻ°ā§āĻŽ āĻšāĻ¯āĻŧ
- āĻāĻāĻĄāĻŋ>- id>.pcap
āĻĒā§āĻ°ā§āĻŦā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻāĻŦā§; āĻāĻŦāĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸ā§āĻāĻ (āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋāĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ) āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻāĻāĻŋ pcap āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨ā§āĻĄ 21 āĻāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ "āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸" āĻšāĻŦā§ āĻāĻĒāĻ¸āĻ°ā§āĻ-21-1.pcap.
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻāĻāĻŋ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ 21-āĻ "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" āĻ¨āĻžāĻŽ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻŽ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻĢāĻ˛ā§ pcap
āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§, prefix-server-1.pcap āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§āĻ¨
āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ "eth0" āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨, āĻāĻĒāĻ¨āĻžāĻ° pcap āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ āĻŦā§ āĻāĻŦāĻ āĻšāĻŦā§
āĻ¨āĻžāĻŽāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°-eth0.pcap.
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻāĻŋ,:
void EnablePcap (std::string prefix, Ptr nd, bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž, bool explicitFilename = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
void EnablePcap (std::string prefix, std::string ndName, bool promiscuous = āĻŽāĻŋāĻĨā§āĻ¯āĻž, bool explicitFilename = āĻŽāĻŋāĻĨā§āĻ¯āĻž);
āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻāĻā§ āĻ¸ā§āĻĒāĻˇā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ. āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ˛ā§, āĻāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĨ¤ āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¯āĻž a-āĻ¤ā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§
āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āĻ°āĻŽāĻŋāĻ¸āĻāĻŋāĻāĻ¸ pcap āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻžāĻŽā§āĻ° āĻĢāĻžāĻāĻ˛ āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ° (my-pcap-file.pcap) āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§, āĻā§āĻ āĻĒāĻžāĻ°ā§:
Ptr nd;
...
helper.EnablePcap ("my-pcap-file.pcap", nd, true, true);
āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻ¤ā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ promiscuous āĻŽā§āĻĄ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻā§ āĻŦāĻ˛ā§
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
Ascii āĻā§āĻ°ā§āĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻāĻ°āĻŖ āĻŽāĻŋāĻļā§āĻ°āĻŖ pcap āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤
āĻ¤āĻžāĻāĻžāĻ¨ src/network/helper/trace-helper.h āĻāĻĒāĻ¨āĻŋ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻĄ āĻĻā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤
āĻļā§āĻ°ā§āĻŖā§ AsciiTraceHelperForDevice ascii āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻā§āĻ˛āĻžāĻ¸ āĻā§āĻ°ā§āĻ¸āĻŋāĻ. pcap āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¯ā§āĻŽāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŽāĻŋāĻļā§āĻ°āĻŖ.:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻļā§āĻ¨ā§āĻ¯āĻ¤āĻž EnableAsciiInternal (Ptr āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr nd) = 0;
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻā§āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§
āĻ¸ā§āĻ¤āĻ° āĻāĻŦāĻ āĻāĻāĻŋāĻ āĻ¯ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻŦ
āĻĒāĻžāĻŦāĻ˛āĻŋāĻ ascii-āĻā§āĻ°ā§āĻ¸-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ AsciiTraceHelperForDevice
āĻāĻ āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻāĻŽ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻ
āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° ascii āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ,:
void EnableAscii (std::string prefix, Ptr nd);
āĻļā§āĻ¨ā§āĻ¯ EnableAscii (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, Ptr nd);
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§ AsciiInternal āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ, āĻšāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨
āĻŦā§āĻ§ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻž āĻĒā§āĻ°āĻŦāĻžāĻšāĨ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻāĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ āĻŽāĻžāĻ¨ā§ āĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ ascii āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĨāĻžāĻāĻŦā§
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧā§ āĻāĻāĻ āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§āĻ˛āĻŋ āĻĨāĻžāĻā§
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ¨āĻžāĻŦāĻ˛ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨āĻžāĻ˛ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§āĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
void EnableAscii (std::string prefix, Ptr nd);
āĻļā§āĻ¨ā§āĻ¯ EnableAscii (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, Ptr nd);
void EnableAscii (std::string prefix, std::string ndName);
void EnableAscii (Ptr āĻ¸ā§āĻā§āĻ°ā§āĻŽ, std::string ndName);
void EnableAscii (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NetDeviceContainer d);
āĻļā§āĻ¨ā§āĻ¯ EnableAscii (Ptr āĻ¸ā§āĻā§āĻ°ā§āĻŽ, NetDeviceContainer d);
void EnableAscii (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NodeContainer n);
āĻļā§āĻ¨ā§āĻ¯ EnableAscii (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, NodeContainer n);
void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid);
void EnableAscii (Ptr āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, uint32_t nodeid, uint32_t deviceid);
void EnableAsciiAll (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ);
void EnableAsciiAll (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš);
āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§ TraceHelperForDevice āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ; āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§...
ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ pcap āĻāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻāĻžāĻ°āĻŖ, pcap-āĻļā§āĻ˛ā§ āĻŽāĻĄā§āĻ˛ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĨā§āĻā§ āĻā§āĻ°ā§āĻ¸ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ/āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻž āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛āĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ°ā§āĻ¸
āĻ āĻ¨ā§āĻ āĻ¨ā§āĻĄ/āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§
- - āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻāĻ˛ āĻĒāĻĄāĻŧā§āĻ¨; āĻāĻŦāĻ API āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻāĻ˛āĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖāĨ¤
āĻ āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ Ptr āĻāĻāĻāĻŋāĻ¤ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯ Ptr āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤
āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
Ptr nd;
...
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", nd);
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ¨ā§ āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻšāĻŦā§
āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻŦā§
pcap āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤, āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ ".tr" āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻĨāĻžāĻāĻŦā§
".pcap"āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°ā§āĻ¸ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻāĻžāĻ¨
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
Ptr nd1;
Ptr nd2;
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAscii (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, nd1);
helper.EnableAscii (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, nd2);
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ
āĻĻā§āĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĨā§āĻā§ āĻā§āĻ°ā§āĻ¸ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻ°āĻ¤ā§. āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¯ā§āĻšā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻāĻŋāĻ¤ā§ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ ".tr" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯
Ptr āĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧ. āĻāĻŦāĻžāĻ°, āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤
āĻ¨āĻžāĻŽāĻ¯ā§āĻā§āĻ¤ āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ/eth0" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0" ...);
...
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ/eth0");
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0");
āĻāĻ° āĻĢāĻ˛ā§ āĻ¨āĻžāĻŽ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻšāĻŦā§ āĻāĻĒāĻ¸āĻ°ā§āĻ-āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ-eth0.tr āĻāĻŦāĻ prefix-server-eth0.tr āĻ¸āĻā§āĻā§
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻŦāĻā§āĻ˛ā§ EnableAscii
āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻŽā§āĻĄāĻŧāĻ āĻ¨āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ āĻĢāĻ°ā§āĻŽāĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ/eth0" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" ...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0" ...);
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAscii (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, "āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ/eth0");
helper.EnableAscii (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°/eth0");
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¨āĻžāĻŽāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŦā§ trace-file-name.tr āĻ¯ā§ āĻ¸āĻŦ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§
āĻāĻāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻž āĻā§āĻ°ā§āĻ¸. āĻāĻāĻ¨āĻž āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§āĻŦāĻŋāĻ§āĻžāĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§
āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
NetDevice ContainerāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻžāĻāĻĒ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯
āĻ¸āĻ āĻŋāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ (āĻ¯ā§āĻŽāĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ°), āĻā§āĻ°ā§āĻ¸āĻŋāĻ
āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻžāĻ°, āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻšā§āĻŦāĻšā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤
āĻāĻ āĻ¨ā§āĻĄ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
NetDeviceContainer d = ...;
...
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", d);
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ¯ - - .tr āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŦ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž
āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ:
NetDeviceContainer d = ...;
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAscii (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, āĻĄāĻŋ);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ NetDevices āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, āĻ¸ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ§āĻ°āĻ¨
āĻā§āĻ āĻāĻ°āĻž āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§), āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° n;
...
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", n);
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ¯ - - .tr āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŦ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž
āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ:
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
ptrāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¨ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋ āĻāĻā§āĨ¤
helper.EnableAscii ("āĻāĻĒāĻ¸āĻ°ā§āĻ", 21, 1);
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻ°ā§āĻ¸āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§
āĻ¯ā§āĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤āĨ¤:
helper.EnableAsciiAll ("āĻāĻĒāĻ¸āĻ°ā§āĻ");
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤ āĻāĻ āĻ¸āĻŦ āĻĢāĻžāĻāĻ˛ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŦā§
- - .tr āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŦ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤
āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧāĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨
āĻāĻĒāĻ°ā§āĻ° āĻāĻĒāĻ¸āĻ°ā§āĻ-āĻļā§āĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, ascii āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ ns-3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻšāĻ¯āĻŧ
āĻĢāĻ°ā§āĻŽā§āĻ° - āĻāĻāĻĄāĻŋ>- id>.tr.
āĻĒā§āĻ°ā§āĻŦā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻāĻŦā§; āĻāĻŦāĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸ā§āĻāĻ (āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋāĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ) āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻāĻāĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄ 21-āĻāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸, "āĻāĻĒāĻ¸āĻ°ā§āĻ" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻšāĻŦā§ āĻāĻĒāĻ¸āĻ°ā§āĻ-21-1.tr.
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻāĻāĻŋ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ 21 āĻ "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°" āĻ¨āĻžāĻŽ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻŽ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻĢāĻ˛ā§
ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§, prefix-server-1.tr āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋāĻ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§āĻ¨
āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ "eth0" āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ˛ā§, āĻāĻĒāĻ¨āĻžāĻ° ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¤ā§āĻ˛ā§ āĻ¨ā§āĻŦā§
āĻāĻŦāĻ āĻŦāĻ˛āĻž āĻšāĻŦā§ prefix-server-eth0.tr.
Pcap āĻ°āĻāĻ¨āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻāĻā§āĻ˛ā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ pcap āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŽāĻ°āĻž āĻāĻžāĻ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ-āĻāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢā§āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŦ āĻā§āĻĄāĻŧā§ āĻāĻāĻ āĻ°āĻāĻŽ āĻāĻžāĻ āĻāĻ°ā§āĻ
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, āĻ¤āĻžāĻ āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĻā§āĻā§ āĻ¨āĻŋāĻ¨
src/network/helper/trace-helper.h āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻĄāĨ¤
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻŦ āĻāĻāĻĒāĻŋāĻāĻŋā§ĒāĨ¤ āĻĨā§āĻā§
āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨, āĻļā§āĻ§ā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž Ptr āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ Ptr āĻāĻŦāĻ āĻāĻ˛ PcapIpv6 āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ PcapIpv4 āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨.
āĻļā§āĻ°ā§āĻŖā§ PcapHelperForIpv4 pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻĒāĻŋāĻāĻŋā§Ē āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛āĻžāĻĻāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻšāĻŦā§
āĻāĻāĻĒāĻŋāĻāĻŋā§Ē, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻšāĻŦā§āĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻāĻĒāĻŋāĻāĻŋā§Ē āĻĨā§āĻā§ āĻāĻāĻĒāĻŋāĻāĻŋā§Ē āĻ¯āĻž āĻāĻāĻ¯āĻŧ
āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯, āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻāĻ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻā§āĻ¯āĻžāĻ¯āĻŧā§āĻĄ EnablePcapIpv4Internal (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸) = 32;
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸-āĻā§āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ āĻĻā§āĻļā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§
āĻāĻ āĻ¸ā§āĻ¤āĻ°ā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ PcapHelperForIpv4
āĻāĻ āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻ
āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° pcap āĻĒāĻĻā§āĻ§āĻ¤āĻŋ,:
void EnablePcapIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§ PcapIpv4 āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ā§ˇ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ
āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻ¤āĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻĒāĻ° pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻŦā§ā§ˇ
āĻ¸āĻŽāĻ¸ā§āĻ¤ pcap āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻā§; āĻāĻŦāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻŦ āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻŦā§
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ˛ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻā§āĻĄāĻŧā§ āĻĒāĻĨ PcapIpv4 āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ā§ˇ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§āĨ¤
Pcap āĻ°āĻāĻ¨āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻĨā§āĻā§ āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ āĻ¨ā§āĻĄ- āĻāĻŦāĻ
āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸- āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻā§āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄ āĻāĻŦāĻ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¯ā§āĻāĻ˛
āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤
āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§, āĻāĻ¯āĻŧāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
void EnablePcapIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnablePcapIpv4 (std::string prefix, Ipv4InterfaceContainer c);
void EnablePcapIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NodeContainer n);
void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnablePcapIpv4All (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ);
āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§ PcapHelperForIpv4 āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻ¤ā§
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ; āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§...
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
Ptr āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻāĻāĻŋāĻ¤ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
Ptr ipv4 = āĻ¨ā§āĻĄ->āĻā§āĻāĻ āĻŦāĻā§āĻā§āĻ ();
...
helper.EnablePcapIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", ipv4, 0);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ/āĻ¨ā§āĻ-āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯
Ptr āĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("serverIPv4" ...);
...
helper.EnablePcapIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "serverIpv4", 1);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻĒāĻŋāĻāĻŋ 4 āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻĒāĻŋāĻāĻŋā§Ē / āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĒā§āĻ°āĻāĻžāĻ°
āĻāĻŽāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻāĻŋ. āĻ¸āĻ āĻŋāĻ āĻāĻžāĻāĻĒā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻāĻ āĻāĻžāĻāĻĒ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°), āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¨ā§āĻĄ;
...
NetDeviceContainer āĻĄāĻŋāĻāĻžāĻāĻ¸ = deviceHelper.Install (nodes);
...
Ipv4AddressHelper ipv4;
ipv4.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ = ipv4.āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨ (āĻĄāĻŋāĻāĻžāĻāĻ¸);
...
helper.EnablePcapIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ¨ā§āĻ¯
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, āĻāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻĄāĻŧāĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° n;
...
helper.EnablePcapIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", n);
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§āĻ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§,
āĻ¨ā§āĻĄ-āĻāĻāĻĄāĻŋ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ Ptr āĻāĻŦāĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻ¸ā§āĻ¤ā§āĻ°.:
helper.EnablePcapIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", 21, 1);
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¸āĻš āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻāĻŋ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ°āĨ¤:
helper.EnablePcapIpv4All ("āĻāĻĒāĻ¸āĻ°ā§āĻ");
Pcap āĻ°āĻāĻ¨āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨
āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ pcap āĻā§āĻ°ā§āĻ¸ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ¯ ns-3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĢāĻ°ā§āĻŽ āĻšāĻ¯āĻŧ - āĻāĻāĻĄāĻŋ>- id>.pcapāĨ¤ āĻāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°ā§
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻā§āĻ°ā§āĻ¸, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻ āĻĨā§āĻā§ āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻāĻā§ āĻ¨ā§āĻĄ. āĻāĻ
āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ āĻŦāĻā§āĻā§āĻāĻ¸ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨ā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻāĻ¸. āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ¨ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¨ā§āĻ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ id, āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĻāĻ°āĻŖā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻ āĻ¤āĻāĻŦ āĻāĻāĻāĻŋ āĻāĻā§
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻāĻāĻ°ā§āĻˇā§āĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĨ¤ āĻāĻ āĻāĻ¨ā§āĻ¯
āĻāĻžāĻ°āĻŖ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻĒā§āĻ°ā§āĻŦā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻ āĻ¨ā§āĻĄ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻĨā§āĻā§ āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻŽāĻ°āĻž āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ " -n -i .pcap" āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĻāĻ°āĻŖ āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĨ¤
āĻ¤āĻžāĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻāĻāĻŋ pcap āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄ 1 āĻāĻ° Ipv4 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ 21 āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ "āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸" āĻšāĻŦā§
"prefix-n21-i1.pcap"āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻāĻāĻŋ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ
āĻāĻĒāĻ¨āĻŋ Ptr-āĻ "serverIpv4" āĻ¨āĻžāĻŽ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻŽ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻāĻĒāĻ°
21, āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ pcap āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§,
"prefix-nserverIpv4-i1.pcap"āĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
ascii āĻā§āĻ°ā§āĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻāĻ°āĻŖ pcap āĻā§āĻ¸ā§āĻ° āĻŽāĻ¤ā§āĻ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻ
āĻ¤āĻžāĻāĻžāĻ¨ā§ src/network/helper/trace-helper.h āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻĄ āĻā§āĻāĻāĻā§āĻ¨.
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻŦ āĻāĻāĻĒāĻŋāĻāĻŋā§ĒāĨ¤ āĻĨā§āĻā§
āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨, āĻļā§āĻ§ā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž Ptr āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ Ptr āĻāĻŦāĻ āĻāĻ˛ AsciiIpv6 āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§
AsciiIpv4 āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨.
āĻļā§āĻ°ā§āĻŖā§ AsciiTraceHelperForIpv4 ascii āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ. āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŦā§
āĻāĻāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻļā§āĻ¨ā§āĻ¯āĻ¤āĻž EnableAsciiIpv4Internal (Ptr āĻ¸ā§āĻā§āĻ°ā§āĻŽ, std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ,
Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸) = 32;
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛- āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸-āĻā§āĻ¨ā§āĻĻā§āĻ°āĻŋāĻ āĻĻā§āĻļā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§
āĻāĻ āĻ¸ā§āĻ¤āĻ°ā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ; āĻāĻŦāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻž āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻ¸āĻ¤ā§āĻ¯
āĻāĻāĻāĻĒā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤
PcapAndAsciiTraceHelperForIpv4 āĻāĻ āĻāĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ˛ āĻāĻ°āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° ascii āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ,:
void EnableAsciiIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4 (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ˛ āĻāĻ°āĻŦā§ AsciiIpv4 āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ā§ˇ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ, āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦāĻž āĻĒā§āĻ°āĻŦāĻžāĻšāĨ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻāĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ āĻŽāĻžāĻ¨ā§ āĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ ascii āĻā§āĻ°ā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĨāĻžāĻāĻŦā§
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻā§āĻĄāĻŧā§ āĻāĻāĻ āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¯āĻĻāĻŋ
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ EnableAsciiIpv4 āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§āĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
void EnableAsciiIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4 (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4 (Ptr āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, std::string ipv4Name, uint32_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4 (std::string prefix, Ipv4InterfaceContainer c);
void EnableAsciiIpv4 (Ptr āĻ¸ā§āĻā§āĻ°ā§āĻŽ, Ipv4InterfaceContainer c);
void EnableAsciiIpv4 (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ, NodeContainer n);
void EnableAsciiIpv4 (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš, NodeContainer n);
void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid);
void EnableAsciiIpv4 (Ptr āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, uint32_t nodeid, uint32_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
void EnableAsciiIpv4All (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻĒāĻ¸āĻ°ā§āĻ);
void EnableAsciiIpv4All (Ptr āĻĒā§āĻ°āĻŦāĻžāĻš);
āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§ PcapAndAsciiHelperForIpv4 āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ; āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§...
ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ pcap āĻāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻāĻžāĻ°āĻŖ, pcap-āĻļā§āĻ˛ā§ āĻŽāĻĄā§āĻ˛ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĨā§āĻā§ āĻā§āĻ°ā§āĻ¸ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ āĻ¨āĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻž āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛āĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§
āĻ āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻā§āĻ°ā§āĻ¸ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ
āĻŽāĻžāĻ¨ā§ āĻ¯ā§ -n - āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻāĻ˛ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž; āĻāĻŦāĻ API āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨āĨ¤
āĻ āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻā§āĻĄāĻŧāĻž Ptr āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻāĻāĻŋāĻ¤ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
Ptr ipv4;
...
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", ipv4, 1);
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ¨ā§ āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻšāĻŦā§
āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻŦā§
pcap āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤, āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ ".tr" āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻĨāĻžāĻāĻŦā§
".pcap"āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°ā§āĻ¸ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻāĻžāĻ¨
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻ°āĻž
āĻāĻĒāĻ°ā§āĻ° "cwnd" āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻā§ āĻāĻā§:
Ptr protocol4 = node1->GetObject ();
Ptr protocol4 = node2->GetObject ();
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAsciiIpv4 (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛1, 1);
helper.EnableAsciiIpv4 (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛2, 1);
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ
āĻĻā§āĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĨā§āĻā§ āĻā§āĻ°ā§āĻ¸ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¯ā§āĻšā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻāĻŋāĻ¤ā§ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ ".tr" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻĒāĻŋāĻā§āĻ¯āĻžāĻĒ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻ¯ Ptr is
āĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§ āĻĻā§āĻāĻž. āĻĻā§āĻ¯ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻĨā§āĻā§ āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻā§
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ-āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻāĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("node1Ipv4"...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("node2Ipv4"...);
...
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "node1Ipv4", 1);
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", "node2Ipv4", 1);
āĻāĻ° āĻĢāĻ˛ā§ "prefix-nnode1Ipv4-i1.tr" āĻ¨āĻžāĻŽā§ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻāĻ¸āĻŦā§ āĻāĻŦāĻ
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻš "prefix-nnode2Ipv4-i1.tr"āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ EnableAscii āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ°âā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸ā§āĻ āĻĢāĻ°ā§āĻŽāĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨:
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("node1Ipv4"...);
āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ("node2Ipv4"...);
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAsciiIpv4 (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, "node1Ipv4", 1);
helper.EnableAsciiIpv4 (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, "node2Ipv4", 1);
āĻāĻ° āĻĢāĻ˛ā§ "trace-file-name.tr" āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻāĻāĻ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŦāĻā§āĻ˛ā§ āĻĨāĻžāĻā§
āĻāĻāĻ¯āĻŧ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻž āĻā§āĻ°ā§āĻ¸. āĻāĻāĻ¨āĻž āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§
āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻĒāĻŋāĻāĻŋ 4 āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°. āĻ¸āĻ āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž), āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŦāĻžāĻ°,
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ-āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ° āĻ¨ā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¨ā§āĻĄ;
...
NetDeviceContainer āĻĄāĻŋāĻāĻžāĻāĻ¸ = deviceHelper.Install (nodes);
...
Ipv4AddressHelper ipv4;
ipv4.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ = ipv4.āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨ (āĻĄāĻŋāĻāĻžāĻāĻ¸);
...
...
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ¯ -n -i .tr āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŦ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž
āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¨ā§āĻĄ;
...
NetDeviceContainer āĻĄāĻŋāĻāĻžāĻāĻ¸ = deviceHelper.Install (nodes);
...
Ipv4AddressHelper ipv4;
ipv4.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ = ipv4.āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨ (āĻĄāĻŋāĻāĻžāĻāĻ¸);
...
Ptr stream = asciiTraceHelper.CreateFileStream ("trace-file-name.tr");
...
helper.EnableAsciiIpv4 (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ, āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛/āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄāĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšā§ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄ āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ¨ā§āĻ¯
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, āĻāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻĄāĻŧāĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,:
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° n;
...
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", n);
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ¯ - - .tr āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŦ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž
āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ:
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻĄāĻŋāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§āĻ pcap āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§,
āĻ¨ā§āĻĄ-āĻāĻāĻĄāĻŋ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ Ptr āĻāĻŦāĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻ¸ā§āĻ¤ā§āĻ°.:
helper.EnableAsciiIpv4 ("āĻāĻĒāĻ¸āĻ°ā§āĻ", 21, 1);
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻ°ā§āĻ¸āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¸āĻš āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻāĻŋ āĻāĻāĻ āĻ§āĻ°āĻŖā§āĻ°āĨ¤:
helper.EnableAsciiIpv4All ("āĻāĻĒāĻ¸āĻ°ā§āĻ");
āĻāĻ° āĻĢāĻ˛ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻžāĻāĻĒā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĨ¤ āĻāĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŦ
āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŦā§ -n -i
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
ASCII āĻ°āĻāĻ¨āĻž āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨
āĻāĻĒāĻ°ā§āĻ° āĻāĻĒāĻ¸āĻ°ā§āĻ-āĻļā§āĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, ascii āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ ns-3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻšāĻ¯āĻŧ
āĻĢāĻ°ā§āĻŽā§āĻ° " - - .tr"
āĻĒā§āĻ°ā§āĻŦā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻ¨ā§āĻĄ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻĨā§āĻā§ āĻāĻ āĻāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻĄ-āĻāĻāĻĄāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§āĨ¤ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻĨāĻžāĻāĻŦā§
āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻ¨āĻĄā§āĻā§āĻ¸ (āĻ¯āĻžāĻā§ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ) āĻāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĒā§āĻā§āĻˇā§āĨ¤ āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ,
āĻ¤āĻžāĻ°āĻĒāĻ°, āĻĒā§āĻ°āĻĨāĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻāĻāĻŋ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻĄ 21, āĻāĻĒāĻ¸āĻ°ā§āĻ "āĻāĻĒāĻ¸āĻ°ā§āĻ" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, "āĻĒā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻ¸-n21-i1.tr" āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻāĻāĻŋ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ
āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§ "serverIpv4" āĻ¨āĻžāĻŽ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻ āĻŦāĻā§āĻā§āĻ āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
21, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨, āĻĢāĻ˛ā§ ascii āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§
āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻ¨, "prefix-nserverIpv4-1.tr"āĨ¤
āĻ°āĻāĻ¨āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻ¸āĻāĻā§āĻ°āĻš
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ ns-3 āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ (DCF) āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻŽāĻĄā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž, āĻ āĻ¨-āĻ˛āĻžāĻāĻ¨ā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻšā§āĻ°āĻžāĻ¸ āĻāĻŦāĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ, āĻāĻŦāĻ āĻŽāĻžāĻ°ā§āĻļāĻžāĻ˛ āĻāĻžāĻāĻāĻž āĻŦāĻž āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻĄā§āĻāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻā§
āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻ°āĨ¤
āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° NS-3 āĻ°āĻžāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻā§āĻ¨ā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¨āĻž
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖāĨ¤ DCF āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻšā§āĻ āĻāĻ°āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ ns-3 āĻāĻŋāĻšā§āĻ¨
āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¸āĨ¤
āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĨāĻžāĻā§ src/āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨.
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻšāĻ˛
āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻāĻ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻŋāĻāĻŋā§āĻ¸āĻž
āĻ āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ°āĻž
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻŦāĻž āĻ¯āĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻŦāĻ¸ā§āĻ¤ā§, āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻŦāĻžāĻāĻŋ āĻĒāĻĄāĻŧāĻž āĻāĻāĻŋāĻ¤, āĻ¯āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§āĻ˛āĻŋāĻ DCF āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ§āĻ°āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻļāĻĻāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻā§āĻĄāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
āĻ¨āĻāĻļāĻž
DCF āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻļā§āĻ°ā§āĻŖā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤:
¡ āĻĒā§āĻ°ā§āĻŦ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤āĨ¤ āĻāĻāĻŋ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ ns-3
āĻāĻ¤ā§āĻ¸ āĻā§āĻ°ā§āĻ¸ āĻĒā§āĻ°ā§āĻŦ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻā§āĻ°ā§āĻ¸ āĻāĻĒ āĻšā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻā§āĻ¨ā§āĻĄ (āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ), āĻ¯āĻž āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ā§ āĻ¨āĻŽā§āĻ¨āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°ā§āĨ¤
¡ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°ā§āĻŦ āĻ āĻŦāĻā§āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§
āĻĄā§āĻāĻžāĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°, āĻ¯ā§āĻŽāĻ¨ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻ°āĻŖ, āĻšā§āĻ°āĻžāĻ¸ āĻāĻŦāĻ āĻāĻŖāĻ¨āĻž
āĻŽā§āĻ˛āĻŋāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĨ¤ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻĒā§āĻ āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻ¨āĻž
ns-3 āĻ°āĻžāĻ¨; āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻ¤āĻžāĻ°āĻž āĻĄāĻžāĻāĻž āĻĄāĻžāĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ āĻ¨ā§āĻ¯ āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻŦāĻā§āĻā§āĻā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ°ā§, āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŽāĻˇā§āĻāĻŋāĻŦāĻŋāĻĻ, āĻ¯āĻž āĻ¸ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻāĻ°ā§
āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§āĻ° āĻĢāĻ°ā§āĻŽ, āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻ¸āĻŋāĻ°āĻŋāĻā§ āĻļā§āĻā§āĻāĻ˛āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
¡ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻŦāĻŋāĻĻ āĻĒā§āĻ°ā§āĻŦ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻšā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻļā§āĻˇ āĻŦāĻŋāĻ¨ā§āĻĻā§āĨ¤
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻš'āĻ˛ āĻŽāĻžāĻ°ā§āĻļāĻžāĻ˛ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤
āĻŽā§āĻāĻžāĻĄā§āĻāĻž, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§ āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ˛ā§āĻāĻ¨ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛, āĻ¸ā§āĻĒā§āĻ°ā§āĻĄāĻļā§āĻ āĻĢāĻžāĻāĻ˛, āĻŦāĻž
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤
āĻāĻ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻ˛āĻžāĻ¸āĻ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻžāĻ˛ā§ āĻŦāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻĄāĻŧā§āĨ¤
āĻ¯ā§āĻā§āĻ¨ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ°āĻžāĻ¨ āĻ¯āĻž DCF āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
āĻāĻĒāĻ°ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
[āĻāĻŦāĻŋ] āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻāĻžāĻ°āĻāĻŋāĻāĨ¤UNINDENT
āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻŦāĻžāĻš āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻ¸āĻāĻā§āĻ°āĻš āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻāĻžāĻ°āĻāĻŋāĻ.
āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§, āĻāĻāĻāĻŋ āĻāĻ˛āĻŽāĻžāĻ¨ ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻĄā§āĻāĻž āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻŦāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻŽāĻĄā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§, āĻ āĻĨāĻŦāĻž āĻĒā§āĻ°ā§āĻŦ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĄā§āĻāĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤. āĻ āĻŦāĻļā§āĻˇā§, āĻāĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻ¨āĻāĻžāĻ°ā§āĻā§ āĻāĻ° āĻāĻāĻāĻĒā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ, āĻĒā§āĻ˛āĻ, āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§āĨ¤
[āĻāĻŦāĻŋ] āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻā§āĻ°āĻŋāĻā§āĻļāĻ¨āĨ¤UNINDENT
āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻŦā§āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻ¸āĻāĻā§āĻ°āĻš āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ.
āĻāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻ¯ā§ āĻĄāĻŋāĻ¸āĻŋāĻāĻĢ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§ āĻļā§āĻā§āĻāĻ˛āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¯ā§ āĻĄāĻžāĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§
āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤āĻāĻžāĻŦā§ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°ā§āĻŦ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻĒāĻžāĻ¤ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻĨāĻ āĻĒā§āĻ°ā§āĻŦ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĄā§āĻāĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°ā§ āĻĢāĻŋāĻĄ, āĻ¯āĻž (āĻāĻ° āĻ¨āĻžāĻŽ āĻĨā§āĻā§ āĻŦā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ) āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒā§āĻ˛āĻ, āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĨ¤
āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻ¸āĻāĻā§āĻ°āĻš āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°ā§āĻŦ, āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻāĻŦāĻ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ°āĨ¤ āĻāĻ āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻ āĻ¸āĻŦ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻŦāĻžāĻĄāĻŧā§
āĻāĻāĻāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻ āĻ¨ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻŋāĻā§
āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻ§ā§āĻ¯ā§ encapsulated āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§. āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŋāĻā§
āĻāĻĄāĻŧāĻŋāĻ¤ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ ns-3 āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¨ā§āĻā§ˇ
āĻŦāĻžāĻāĻ§āĻžāĻ
āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻ¸āĻāĻā§āĻ°āĻš āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§, āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋ āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻŋāĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻšāĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻĻā§āĻ¯
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¤āĻžāĻĻā§āĻ° C++ āĻŦāĻž āĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻāĻ āĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻĒāĻžāĻāĻĨāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ āĻ¸āĻšāĻāĻ˛āĻā§āĻ¯āĻ¤āĻž āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻŽ āĻāĻ°āĻā§ āĻāĻ¸ā§
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŦāĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯)āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻĒāĻ° āĻā§āĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻŽāĻžāĻ°ā§āĻļāĻžāĻ˛ āĻ¤āĻĨā§āĻ¯ āĻāĻāĻ ns-3 āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¤ā§āĻ¸ āĻā§āĻ°ā§āĻ¸
gnuplot āĻĒā§āĻ˛āĻ āĻŦāĻž āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛, āĻāĻā§āĻ āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻŦāĻž āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ (āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§)āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāĻ˛āĻā§āĻ¯ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§
ns-3. āĻāĻ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻ¯āĻžāĻŦā§
āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ§āĻ°āĻ¨, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻĒā§āĻ°ā§āĻŦ, āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻāĻ¸āĻžāĻĨā§ āĻšā§āĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻžāĻ¸ā§āĻāĻŽ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧāĨ¤
āĻāĻ āĻ āĻŦāĻ§āĻŋ, āĻĻā§āĻāĻŋ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
¡ GnuplotHelper
¡ āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°
GnuplotHelper
GnuplotHelper āĻšāĻ˛ gnuplots āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻļā§āĻ°ā§āĻŖā§āĨ¤ āĻĻā§āĻ¯
āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻā§āĻ¤ āĻĄā§āĻāĻž āĻĨā§āĻā§ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž
in ns-3 āĻāĻ¤ā§āĻ¸ āĻā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¤āĻĨā§āĻ¯ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ;
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻ˛ āĻ¯āĻ¤ āĻāĻŽ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ) āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻš āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ¸āĻŽā§āĻāĻŦ.
GnuplotHelper āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
GnuplotHelper āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻļā§āĻˇā§ 3āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§:
āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻŋāĻāĻā§āĻ¤ gnuplot āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛
āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛
gnuplot āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
āĻĻā§āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻāĻā§ āĻ¯āĻž āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ
āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻĒā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§ (āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ, āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋ, āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻĒā§āĻ
āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĨāĻžāĻāĻ˛ā§ PNG āĻ¤ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨):
void ConfigurePlot (const std::string &outputFileName WithoutExtension,
const std::string &title,
const std::string &xLegend,
const std::string &yLegend,
const std::string &terminalType = ".png");
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻāĻŋ āĻāĻā§āĻ°āĻšā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§ āĻšā§āĻ āĻāĻ°ā§:
void PlotProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource,
const std::string &title);
āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
¡ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ: The ns-3 āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
¡ āĻĒāĻĨ: āĻĒāĻĨ ns-3 āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨
āĻĒā§āĻ°ā§āĻŦāĻā§āĻ°ā§āĻ¸āĻ¸ā§āĻ°ā§āĻ¸: āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ¨ āĻāĻāĻāĻĒā§āĻ (āĻ¨āĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸) āĻĒā§āĻ˛āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ: āĻĄā§āĻāĻžāĻ¸ā§āĻ(āĻā§āĻ˛āĻŋ) āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ (āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋāĻ¤ā§)
āĻāĻĒāĻ°ā§āĻ° āĻĒā§āĻ˛āĻāĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻāĻ˛ā§āĻĒāĻŋāĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒāĻā§āĻāĻŽ āĻāĻā§āĻāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻ¯āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ˛āĻā§ āĻā§ (āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋ) āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ (āĻĨā§āĻā§ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ) āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
// gnuplot āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
GnuplotHelper plotHelper;
// āĻĒā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
// āĻĒā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻšāĻ˛ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻĒāĻ¸āĻ°ā§āĻ
// āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ, āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ¤ā§āĻ°ā§āĻĨ
// āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻ˛, āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§, āĻĒā§āĻ˛āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ, x-āĻ āĻā§āĻˇ, āĻāĻŦāĻ y-āĻ āĻā§āĻˇ āĻ˛ā§āĻŦā§āĻ˛
plotHelper.ConfigurePlot ("āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻŖāĻ¨āĻž",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ āĻŦāĻ¨āĻžāĻŽ āĻ¸āĻŽāĻ¯āĻŧ",
"āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ)",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ",
"png");
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ§āĻ°āĻ¨, āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻĒāĻžāĻĨ (āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§) āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ
āĻĒā§āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ // āĻĒā§āĻ°ā§āĻŦ āĻāĻāĻāĻĒā§āĻ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ ("āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸")āĨ¤ āĻāĻ¤ā§āĻ°ā§āĻĨ āĻ¯ā§āĻā§āĻ¤āĻŋ
// āĻĒā§āĻ˛āĻā§ āĻĄā§āĻāĻž āĻ¸āĻŋāĻ°āĻŋāĻ āĻ˛ā§āĻŦā§āĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻ¤
// āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻā§āĻāĻŋ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻĒā§āĻ˛āĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°ā§āĨ¤
plotHelper.PlotProbe (probeType,
āĻā§āĻ°ā§āĻ¸āĻĒāĻĨ,
"āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ",
GnuplotAggregator::KEY_BELOW);
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻĒā§āĻ°ā§āĻŦ āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻā§āĻ°ā§āĻ¸āĻĒāĻĨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ (IPv4 āĻāĻ° āĻāĻ¨ā§āĻ¯):
probeType = "ns3::Ipv4PacketProbe";
tracePath = "/NodeList/*/$ns3::Ipv4L3Protocol/Tx";
āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ probeType āĻšāĻ˛ āĻāĻāĻāĻŋ āĻŽā§āĻ˛ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĨ¤ āĻāĻ TypeId āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§, āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ āĻŦāĻļā§āĻ¯āĻ āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§
āĻāĻ¤ā§āĻ¸ āĻāĻāĻŋ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻā§āĻā§. āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ-āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ ns-3 āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻž āĻŽāĻžāĻ¨, āĻāĻŦāĻ āĻāĻ°āĻ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻŽāĻ¨
'Tx' āĻāĻ° āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ ns3::Ipv4L3 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦāĻ°ā§āĻ.
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻĒāĻžāĻĨā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻžāĻ§āĻŋāĻ
āĻĄā§āĻāĻžāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻā§ āĻĒā§āĻ˛āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻĒāĻĨā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋāĨ¤
āĻāĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻšāĻŦā§:
āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ.āĻĄā§āĻ¯āĻžāĻ
āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ.plt
āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ.āĻļ
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ .plt āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ āĻĨāĻŦāĻž
āĻļā§āĻ§ā§ gnuplot āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨āĨ¤ āĻāĻ˛āĻŽāĻžāĻ¨ sh āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ.āĻļ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ
gnuplot āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻ¯ā§āĻŽāĻ¨ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
[āĻāĻŦāĻŋ] 2-āĻĄāĻŋ āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§..UNINDENT
āĻāĻāĻŋ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§ āĻŽā§āĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ (āĻ˛ā§āĻā§āĻ¨ā§āĻĄ, āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ, āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋ āĻŦāĻ¸āĻžāĻ¨ā§, xlabel, ylabel,
āĻāĻŦāĻ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻĨ) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ˛āĻā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĻā§āĻāĻŋ āĻŽā§āĻ¯āĻžāĻ āĻāĻŋāĻ˛
āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻžāĻĨ, āĻĻā§āĻāĻŋ āĻĄā§āĻāĻž āĻ¸āĻŋāĻ°āĻŋāĻ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
¡ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ-0 /NodeList/0/$ns3::Ipv4L3Protocol/Tx āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ
¡ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ-1 /NodeList/1/$ns3::Ipv4L3Protocol/Tx āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ
GnuplotHelper āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻĒā§āĻ˛āĻ
GnuplotHelper āĻāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻĒā§āĻ˛āĻ() āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ°āĻ¯āĻŧā§āĻā§:
void ConfigurePlot (const std::string &outputFileName WithoutExtension,
const std::string &title,
const std::string &xLegend,
const std::string &yLegend,
const std::string &terminalType = ".png");
āĻāĻāĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
âââââââââââââââââââââââââââââââââŦâââââââââââââââââ ââââââââââââââââââ
âāĻ¯ā§āĻā§āĻ¤āĻŋ â āĻŦāĻ°ā§āĻŖāĻ¨āĻž â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âoutputFileNameWithoutExtension â gnuplot āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ â
â â āĻā§āĻ¨ā§ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âtitle â āĻĒā§āĻ˛āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ â āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
â â āĻāĻ āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤. â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âxLegend â x āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻ â āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋ
â â āĻ āĻā§āĻˇāĨ¤ â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âyLegend â y āĻāĻ˛ā§āĻ˛āĻŽā§āĻŦ â āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻāĻŦāĻĻāĻ¨ā§āĻ¤āĻŋ
â â āĻ āĻā§āĻˇāĨ¤ â
âââââââââââââââââââââââââââââââââ´âââââââââââââââââ ââââââââââââââââââ
âāĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻāĻžāĻāĻĒ â āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻāĻžāĻāĻĒ āĻ¸ā§āĻāĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ â āĻāĻ° āĻāĻ¨ā§āĻ¯
â â āĻāĻāĻāĻĒā§āĻāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ â
â â āĻĒā§āĻ°āĻāĻžāĻ° "png"āĨ¤ â
âââââââââââââââââââââââââââââââââ´âââââââââââââââââ ââââââââââââââââââ
GnuplotHelper āĻāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻĒā§āĻ˛āĻ() āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§
gnuplot helper āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻŋāĻāĻā§āĻ¤ gnuplot āĻ¨āĻžāĻŽā§ āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
outputFileNameWithoutExtension + ".dat", āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛
outputFileNameWithoutExtension + ".plt", āĻāĻŦāĻ gnuplot āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
outputFileNameWithoutExtension + ".sh"āĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻĄ
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
plotHelper.ConfigurePlot ("āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻŖāĻ¨āĻž",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ āĻŦāĻ¨āĻžāĻŽ āĻ¸āĻŽāĻ¯āĻŧ",
"āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ)",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ",
"png");
GnuplotHelper āĻĒā§āĻ˛āĻāĻĒā§āĻ°ā§āĻŦ
GnuplotHelper āĻāĻ° āĻĒā§āĻ˛āĻāĻĒā§āĻ°ā§āĻŦ() āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨ āĻĒā§āĻ˛āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ°āĻ¯āĻŧā§āĻā§:
void PlotProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource,
const std::string &title,
enum GnuplotAggregator::KeyLocation keyLocation = GnuplotAggregator::KEY_INSIDE);
āĻāĻāĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
âââââââââââââââââââŦâââââââââââââââââââââââââââââââ ââââ
âāĻ¯ā§āĻā§āĻ¤āĻŋ â āĻŦāĻ°ā§āĻŖāĻ¨āĻž â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âtypeId â āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻĒ ID â
â â āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ. â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âāĻĒāĻžāĻĨ â āĻā§āĻ°ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻĨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ â
â â āĻā§āĻ¸āĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âprobeTraceSource â āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ â āĻ
â â āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âāĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ â āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻāĻŋ â āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
â â āĻāĻ āĻĄā§āĻāĻžāĻ¸ā§āĻ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âāĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ â â-āĻ āĻā§āĻāĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨
â â āĻĒā§āĻ˛āĻāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻšāĻ˛ âā§ˇ
â â āĻāĻŋāĻ¤āĻ°ā§āĨ¤ â
âââââââââââââââââââ´âââââââââââââââââââââââââââââââ ââââ
GnuplotHelper āĻāĻ° āĻĒā§āĻ˛āĻāĻĒā§āĻ°ā§āĻŦ() āĻĢāĻžāĻāĻļāĻ¨ āĻšā§āĻāĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻĒā§āĻ˛āĻ āĻāĻ°ā§ ns-3
āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻ¤ā§āĻ¸ āĻā§āĻ°ā§āĻ¸ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ˛āĻ āĻāĻ°ā§āĻ¨ā§ˇ
probeTraceSource. āĻĄā§āĻāĻžāĻ¸ā§āĻā§āĻ° āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻĨāĻžāĻāĻŦā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻāĻŽāĻ¸ā§āĻā§āĻ¯āĻžāĻŽā§āĻĒā§ 'newValue'āĨ¤
āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĒāĻžāĻĨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŽāĻŋāĻ˛ āĻĨāĻžāĻā§ āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻāĻā§, āĻ¤āĻžāĻšāĻ˛ā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻĒā§āĻ˛āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧāĻŋāĻ¤ āĻšāĻŦā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĒāĻĨā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ āĻā§āĻˇāĻ°, āĻ¸ā§āĻĒā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ "āĻŦāĻžāĻāĻ" āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻĨāĻžāĻā§
āĻĒāĻžāĻĨā§, āĻ¤āĻžāĻ°āĻĒāĻ° "āĻŦāĻžāĻāĻ-ā§Ļ ā§Ļ" āĻŦāĻž "āĻŦāĻžāĻāĻāĻ¸-ā§§ā§¨ 0" āĻāĻ° āĻŽāĻ¤ā§ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§
āĻĒā§āĻ˛āĻ āĻāĻ°āĻž āĻĄā§āĻāĻžāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛āĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻĄ
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸āĻš) āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
plotHelper.PlotProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ",
GnuplotAggregator::KEY_BELOW);
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻā§āĻāĻžāĻ¨āĻĒā§āĻ˛āĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
src/stats/examples/gnuplot-helper-example.cc. āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ 2-D gnuplot āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĻāĻžāĻšāĻ°āĻŖ.
[āĻāĻŦāĻŋ] 2-āĻĄāĻŋ āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ gnuplot-helper-example.cc āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ..UNINDENT
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻāĻžāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻāĻā§ āĻ¯āĻž a āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¤āĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°ā§
āĻĒāĻ¯āĻŧāĻ¸āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ¤ āĻāĻ°ā§āĨ¤
Ptr emitter = CreateObject ();
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°", āĻāĻŽāĻŋāĻāĻžāĻ°);
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¨ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒāĻĨā§ āĻā§āĻ¨ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻ¨āĻž āĻĨāĻžāĻāĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° ā§§āĻāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻāĻŋāĻ˛
āĻĒā§āĻ˛āĻā§ āĻāĻāĻāĻžāĨ¤ āĻĒā§āĻ˛āĻā§ āĻāĻ āĻāĻāĻ āĻĄāĻžāĻāĻžāĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻāĻŋ āĻā§āĻŦāĻ˛ "āĻāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻ" āĻ˛ā§āĻŦā§āĻ˛āĻ¯ā§āĻā§āĻ¤āĨ¤
āĻĒāĻĨā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§ āĻāĻŽāĻ¨ āĻā§āĻ¨ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
// gnuplot āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
GnuplotHelper plotHelper;
// āĻĒā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
plotHelper.ConfigurePlot ("gnuplot-helper-example",
"āĻāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻāĻ¸ āĻŦāĻ¨āĻžāĻŽ āĻ¸āĻŽāĻ¯āĻŧ",
"āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ)",
"āĻāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻ",
"png");
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ˛āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻĒāĻĨ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨
// āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻā§āĻ¸āĻā§ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤
plotHelper.PlotProbe ("ns3::Uinteger32Probe",
"/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°/āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°",
"āĻāĻāĻāĻĒā§āĻ",
"āĻāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻ",
GnuplotAggregator::KEY_INSIDE);
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°
FileHelper āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻļā§āĻ°ā§āĻŖā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻĄā§āĻāĻž āĻŽāĻžāĻ¨ āĻ°āĻžāĻāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ°ā§āĻŦāĻŋāĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛
āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻĄā§āĻāĻž āĻĨā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§
in ns-3 āĻāĻ¤ā§āĻ¸ āĻā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¤āĻĨā§āĻ¯ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ;
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻ˛ āĻāĻ¯āĻŧā§āĻāĻāĻŋ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ) āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻš āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ¸āĻŽā§āĻāĻŦ.
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻĢāĻžāĻāĻ˛āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻļā§āĻˇā§ 1 āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤
FileHelper 4āĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§:
¡ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻŋāĻ¤
¡ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ)
¡ āĻāĻŽāĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
¡ āĻā§āĻ¯āĻžāĻŦ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽā§āĻĻā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ C-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻŦāĻ sprintf() āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻž āĻšāĻā§āĻā§āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ 2 āĻāĻ˛āĻžāĻŽ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻŽāĻžāĻ¨ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§
āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ-0.txt āĻāĻ°āĻ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻŽā§āĻ˛ ns-3 āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ° āĻā§āĻĄ. āĻāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ 10 āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.000e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.004e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.004e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 576
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.009e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 576
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.009e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 576
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.015e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 512
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.017e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 576
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.017e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 544
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.025e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 576
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.025e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 544
...
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ 2 āĻāĻ˛āĻžāĻŽ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻŽāĻžāĻ¨ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§
āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ-1.txt āĻāĻāĻ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻŽā§āĻ˛ ns-3 āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ° āĻā§āĻĄ. āĻāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ 10 āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.002e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.007e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.013e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.020e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.028e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.036e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.045e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.053e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.061e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.069e+00 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻ¸āĻāĻā§āĻ¯āĻž = 40
...
āĻĻā§āĻāĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻĄāĻāĻŋ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻ¨ā§āĻā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻāĻ API āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻĒāĻĨāĻāĻŋāĻ¤ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ 2āĻāĻŋ āĻŽāĻŋāĻ˛ āĻāĻŋāĻ˛, 2āĻāĻŋ āĻĒā§āĻĨāĻ āĻĒāĻžāĻ ā§āĻ¯ āĻĢāĻžāĻāĻ˛
āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻ˛. āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛, āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ "seventh-packet-byte-count-0.txt",
āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ "*" āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ "0" āĻāĻ° āĻ¸āĻžāĻĨā§āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛,
āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ "seventh-packet-byte-count-1.txt", āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻŽāĻŋāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ
"*" "1" āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻ¯ā§ āĻ¨ā§āĻ WriteProbe() āĻāĻāĻāĻŋ āĻĻā§āĻŦā§
āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻĨā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻŽāĻŋāĻ˛ āĻ¨āĻž āĻĨāĻžāĻāĻ˛ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĨ¤
// āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻĢāĻžāĻāĻ˛āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻšā§āĻ˛ā§āĻĒāĻžāĻ°;
// āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
fileHelper.ConfigureFile ("āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻŖāĻ¨āĻž",
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ);
// āĻāĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
fileHelper.Set2dFormat ("āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = %.3e\tāĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻ = %.0f");
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
fileHelper.WriteProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸");
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛() āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻŋāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ°āĻ¯āĻŧā§āĻā§:
void ConfigureFile (const std::string &outputFileNameWithoutExtension,
enum FileAggregator::FileType fileType = FileAggregator::SPACE_SEPARATED);
āĻāĻāĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
âââââââââââââââââââââââââââââââââŦâââââââââââââââââ ââââââââââââââââââ
âāĻ¯ā§āĻā§āĻ¤āĻŋ â āĻŦāĻ°ā§āĻŖāĻ¨āĻž â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âoutputFileNameWithoutExtension â āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ â
â â āĻā§āĻ¨ā§ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤ â
âââââââââââââââââââââââââââââââââŧâââââââââââââââââ ââââââââââââââââââ¤
âfileType â āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ â
â â āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒā§āĻ°āĻāĻžāĻ° āĻšāĻ˛ āĻ¸ā§āĻĨāĻžāĻ¨ â
â â āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ â
âââââââââââââââââââââââââââââââââ´âââââââââââââââââ ââââââââââââââââââ
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛() āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ outputFileNameWithoutExtension plus āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻŽā§āĻ¯āĻžāĻ āĻĒā§āĻ˛āĻžāĻ¸ ".txt" āĻĨā§āĻā§ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻ¸āĻš
āĻĢāĻžāĻāĻ˛ āĻāĻžāĻāĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ§āĻ°āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨-āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻĄ
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
fileHelper.ConfigureFile ("āĻ¸āĻĒā§āĻ¤āĻŽ-āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻŖāĻ¨āĻž",
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ);
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° WriteProbe
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° WriteProbe() āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛āĨ¤
āĻāĻāĻŋāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ°āĻ¯āĻŧā§āĻā§:
void WriteProbe (const std::string &typeId,
const std::string &path,
const std::string &probeTraceSource);
āĻāĻāĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§:
âââââââââââââââââââŦâââââââââââââââââââââââââââââââ ââââ
âāĻ¯ā§āĻā§āĻ¤āĻŋ â āĻŦāĻ°ā§āĻŖāĻ¨āĻž â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âtypeId â āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻĒ ID â āĻšāĻ¤ā§ āĻšāĻŦā§
â â āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âāĻĒāĻžāĻĨ â āĻā§āĻ°ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻĨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ â
â â āĻā§āĻ¸āĨ¤ â
âââââââââââââââââââŧâââââââââââââââââââââââââââââââ ââââ¤
âprobeTraceSource â āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ â āĻ
â â āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĨ¤ â
âââââââââââââââââââ´âââââââââââââââââââââââââââââââ ââââ
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° WriteProbe() āĻĢāĻžāĻāĻļāĻ¨ āĻšā§āĻāĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛ā§āĻāĻž
probeTraceSource. āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻāĻŦā§
m_outputFileNameWithoutExtension āĻĒā§āĻ˛āĻžāĻ¸ ".txt", āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ 'newValue' āĻĨāĻžāĻāĻŦā§
āĻāĻžāĻāĻŽāĻ¸ā§āĻā§āĻ¯āĻžāĻŽā§āĻĒ
āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĒāĻžāĻĨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŽāĻŋāĻ˛ āĻĨāĻžāĻā§ āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻāĻā§, āĻ¤āĻžāĻšāĻ˛ā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŦā§
m_outputFileNameWithoutExtension-āĻ āĻĒāĻžāĻ ā§āĻ¯ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ āĻā§āĻˇāĻ°
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĒāĻžāĻĨā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ, āĻĄā§āĻ¯āĻžāĻļ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž, āĻĒā§āĻ˛āĻžāĻ¸ ".txt"āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ¨
m_outputFileNameWithoutExtension-āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻšāĻ˛ "āĻĒā§āĻ¯āĻžāĻā§āĻ-āĻŦāĻžāĻāĻ-āĻāĻžāĻāĻ¨ā§āĻ", āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻāĻā§
āĻĒāĻĨā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¯ā§āĻŽāĻ¨ "packet-byte-count-0-0.txt" āĻŦāĻž
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ "packet-byte-count-12-9.txt" āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§āĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻā§āĻĄ
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
fileHelper.WriteProbe ("ns3::Ipv4PacketProbe",
"/NodeList/*/$ns3::Ipv4L3Protocol/Tx",
"āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸");
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĢāĻžāĻāĻ˛ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻĒā§āĻ¤āĻŽ.āĻ¸āĻŋāĻ¸āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
src/stats/examples/file-helper-example.cc. āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° FileHelper āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ 2 āĻāĻ˛āĻžāĻŽ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻŽāĻžāĻ¨ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ file-helper-example.txt
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ 10āĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻāĻāĻžāĻ¨ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻž
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 0.203 āĻāĻŖāĻ¨āĻž = 1
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 0.702 āĻāĻŖāĻ¨āĻž = 2
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 1.404 āĻāĻŖāĻ¨āĻž = 3
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 2.368 āĻāĻŖāĻ¨āĻž = 4
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 3.364 āĻāĻŖāĻ¨āĻž = 5
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 3.579 āĻāĻŖāĻ¨āĻž = 6
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 5.873 āĻāĻŖāĻ¨āĻž = 7
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 6.410 āĻāĻŖāĻ¨āĻž = 8
āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = 6.472 āĻāĻŖāĻ¨āĻž = 9
...
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻāĻžāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻāĻā§ āĻ¯āĻž a āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¤āĻžāĻ° āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°ā§
āĻĒāĻ¯āĻŧāĻ¸āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ¤ āĻāĻ°ā§āĨ¤
Ptr emitter = CreateObject ();
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°", āĻāĻŽāĻŋāĻāĻžāĻ°);
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¨āĻŋāĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒāĻžāĻĨā§ āĻā§āĻ¨ā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻ¨āĻž āĻĨāĻžāĻāĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 1āĻāĻŋ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ āĻāĻŋāĻ˛
āĻ¤ā§āĻ°āĻŋ āĻāĻ āĻāĻāĻ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻā§ āĻ¸āĻšāĻāĻāĻžāĻŦā§ "file-helper-example.txt" āĻ¨āĻžāĻŽ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻā§āĻ¨ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻžāĻĄāĻŧāĻžāĻ
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¤ā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§ āĻ¯ā§ āĻĒāĻĨā§ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻāĻžāĻ°ā§āĻĄ āĻāĻā§ āĻāĻŋāĻ¨āĻžāĨ¤
// āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻĢāĻžāĻāĻ˛āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻšā§āĻ˛ā§āĻĒāĻžāĻ°;
// āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
fileHelper.ConfigureFile ("āĻĢāĻžāĻāĻ˛-āĻšā§āĻ˛ā§āĻĒāĻžāĻ°-āĻāĻĻāĻžāĻšāĻ°āĻŖ",
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ);
// āĻāĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
fileHelper.Set2dFormat ("āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ) = %.3e\tCount = %.0f");
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ āĻ¯ā§ āĻĒāĻĨā§ āĻāĻŽāĻ°āĻž
// āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻā§āĻ¸āĻā§ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤
fileHelper.WriteProbe ("ns3::Uinteger32Probe",
"/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°/āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°",
"āĻāĻāĻāĻĒā§āĻ");
āĻŦā§āĻ¯āĻžāĻĒā§āĻ¤āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ GnuplotHelper-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĢāĻžāĻāĻ˛ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°ā§āĻ° āĻāĻžāĻā§:
āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨āĻĒā§āĻ°ā§āĻŦ
¡ āĻĄāĻžāĻŦāĻ˛āĻĒā§āĻ°ā§āĻŦ
¡ Uinteger8Probe
¡ Uinteger16Probe
¡ Uinteger32Probe
¡ āĻāĻžāĻāĻŽāĻĒā§āĻ°ā§āĻŦ
¡ āĻĒā§āĻ¯āĻžāĻā§āĻāĻĒā§āĻ°ā§āĻŦ
¡ ApplicationPacketProbe
¡ Ipv4PacketProbe
āĻ¤āĻžāĻ āĻāĻ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° TypeIds āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĒā§āĻ˛āĻāĻĒā§āĻ°ā§āĻŦ() āĻāĻŦāĻ
WriteProbe().
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ§āĻ°āĻ¨āĻā§ āĻāĻāĻžāĻ° āĻāĻ°āĻŦ (āĻĒā§āĻ°ā§āĻŦ, āĻāĻžāĻ˛ā§āĻā§āĻāĻ°,
āĻāĻŦāĻ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°) āĻāĻ°ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻĻā§āĻāĻžāĻ¨ āĻāĻŦāĻ āĻĻā§āĻāĻžāĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° APIāĨ¤
āĻĒā§āĻ°ā§āĻŦ
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ ns-3
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž ns-3 āĻā§āĻ˛āĻ¸ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻ āĻāĻļ, āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĨ¤
āĻĒā§āĻ°ā§āĻŦ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻ āĻŦāĻā§āĻā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻāĻžāĻ° āĻāĻĨāĻž āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨
āĻĒā§āĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻĄāĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¤ āĻāĻŋ āĻāĻŋāĻ˛ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻĄāĻŧā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĄā§āĻāĻž āĻ āĻ¨ā§āĻ¯āĻā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°ā§
āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĨ¤ āĻ¯āĻĻāĻŋāĻ āĻāĻāĻŋ āĻāĻ āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§
āĻĒā§āĻ°ā§āĻŦ āĻ¤āĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻā§ āĻāĻāĻŦā§ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻāĻāĻŋ āĻŦāĻ˛āĻžāĻ āĻ¯āĻĨā§āĻˇā§āĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻļā§āĻˇā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŋāĻ˛ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¤āĻĨā§āĻ¯ āĻĨāĻžāĻāĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻāĻāĻāĻŋ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§ ns-3 āĻā§āĻ¸ āĻā§āĻ°ā§āĻ¸. āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, āĻ¯āĻāĻ¨āĻ
āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§, āĻĒā§āĻ°ā§āĻŦ āĻŽāĻžāĻ¨āĻāĻŋ āĻā§āĻ°āĻžāĻ¸ āĻāĻ°ā§ (āĻāĻŦāĻ āĻ¨āĻŋāĻā§āĻ° āĻĻāĻŋāĻā§ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§
āĻ āĻ¨ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§)āĨ¤
āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨āĻāĻŋāĻā§ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻ°āĻŖ
āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
¡ āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻ˛ā§ āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸āĻā§āĻˇāĻŽ()
āĻāĻŦāĻ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ(). āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻŽāĻāĻĒ āĻĢā§āĻāĨ¤
¡ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻĨā§āĻā§ āĻŽāĻžāĻ¨ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻžāĻ āĻžāĻŽā§; āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ ns3::āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻžāĨ¤
āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ ns3::Config āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§ (āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻžāĻŽ::āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ()) āĻ¯āĻžāĻ¤ā§ āĻ āĻ¨ā§āĻ¯
āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻ¨āĻā§ āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨
ns2measure āĻ āĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ [Cic06]
Stat::put ("my_metric", ID, āĻ¨āĻŽā§āĻ¨āĻž);
āĻāĻĒāĻ°ā§āĻ° ns3measure āĻā§āĻĄā§āĻ° ns-2 āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯, āĻ¯ā§āĻŽāĻ¨
DoubleProbe::SetValueByPath ("/path/to/probe", āĻ¨āĻŽā§āĻ¨āĻž);
āĻ¸ā§āĻˇā§āĻāĻŋ
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻĒā§āĻ°ā§āĻŦ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŦā§āĻ¸
āĻā§āĻ˛āĻžāĻ¸, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻāĻŋāĻ¤ā§ āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§
DoubleProbe āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸, āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§
āĻāĻŋ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨.
āĻāĻāĻāĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻŦāĻ˛āĻĒā§āĻ°ā§āĻŦ āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§ (Ptr ) āĻĒā§āĻ°āĻ¤āĻŋ
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ DoubleProbe āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻāĻāĻāĻ¨āĻā§ āĻļā§āĻ§ā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
ns-3 āĻĒāĻĻā§āĻ§āĻ¤āĻŋ CreateObject():
Ptr myprobe = CreateObject ();
āĻāĻĒāĻ°ā§āĻ° āĻā§āĻˇāĻŖāĻžāĻāĻŋ āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ DoubleProbes āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
DoubleProbe āĻā§āĻ˛āĻžāĻ¸ā§ āĻāĻžāĻ°āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§; āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ āĻŦāĻā§āĻā§āĻā§ āĻĻā§āĻāĻŋ
DataCollectionObject, āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§:
¡ "āĻ¨āĻžāĻŽ" (āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻ āĻŦāĻā§āĻā§āĻ), āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻ¯āĻžāĻ˛ā§
¡ "āĻ¸āĻā§āĻˇāĻŽ" (DataCollectionObject), āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§
¡ "āĻ¸ā§āĻāĻžāĻ°ā§āĻ" (āĻĒā§āĻ°ā§āĻŦ), āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽ āĻā§āĻ¯āĻžāĻ˛ā§
¡ "āĻ¸ā§āĻāĻĒ" (āĻĒā§āĻ°ā§āĻŦ), āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽ āĻā§āĻ¯āĻžāĻ˛ā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋāĻ¤ā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§:
Ptr myprobe = CreateObjectWithAttributes (
"āĻ¨āĻžāĻŽ", āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻ¯āĻžāĻ˛ā§ ("āĻŽāĻžāĻāĻĒā§āĻ°ā§āĻŦ"),
"āĻ¸āĻā§āĻˇāĻŽ", āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§ (āĻŽāĻŋāĻĨā§āĻ¯āĻž),
"āĻ¸ā§āĻāĻžāĻ°ā§āĻ", ââāĻāĻžāĻāĻŽ āĻā§āĻ¯āĻžāĻ˛ā§ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (100.0)),
"āĻ¸ā§āĻāĻĒ", āĻāĻžāĻāĻŽ āĻā§āĻ¯āĻžāĻ˛ā§ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (1000.0)));
āĻ¸ā§āĻāĻžāĻ°ā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻāĻĒ āĻšāĻ˛ āĻāĻžāĻāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ°ā§āĻŽā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻĻā§āĻ¯
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻĨāĻžāĻā§ āĻ¤āĻŦā§āĻ āĻĒā§āĻ°ā§āĻŦ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§
āĻ āĻ¨ā§āĻ¤āĻ°. āĻ¸ā§āĻāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ 0 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŦāĻŋāĻļā§āĻˇ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻžāĻ¨ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋāĻā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻŦā§ (āĻ¯ā§āĻŽāĻ¨
āĻĒā§āĻ°ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ āĻāĻžāĻ˛ā§ āĻ°āĻžāĻā§āĻ¨)āĨ¤ Enabled āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒāĻ¤āĻžāĻāĻž āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦāĻā§ āĻŦāĻž āĻāĻžāĻ˛ā§ āĻāĻ°ā§
āĻŦāĻ¨ā§āĻ§, āĻāĻŦāĻ āĻ¤āĻĨā§āĻ¯ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¯ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻ¨āĻžāĻŽ āĻšāĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ
DCF āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§āĨ¤
āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻšāĻā§āĻā§ āĻāĻŦāĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻĒāĻžāĻ¤ā§āĻ¤
ns-3 āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ā§ āĻĒā§āĻ°ā§āĻŦāĻā§ āĻšā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻā§āĻ¸ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ° āĻāĻĒāĻļā§āĻ°ā§āĻŖā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĄāĻŋāĻĢāĻ˛ā§āĻ
āĻŦāĻŋāĻ¤āĻ°āĻŖ ns-3 āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§ DoubleProbe āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻšā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻāĻāĻŋ āĻĄāĻŦāĻ˛ āĻŽāĻžāĻ¨ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻā§āĻ¸. āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ DoubleProbe-āĻāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻŦ, āĻāĻŦāĻ
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĄāĻžāĻŦāĻ˛āĻĒā§āĻ°ā§āĻŦ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
DoubleProbe āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻā§āĻŖ-āĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸, āĻāĻŦāĻ āĻ¨āĻŋāĻā§āĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĻā§āĻŦāĻŋ-āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ ns-3 āĻā§āĻ¸ āĻā§āĻ°ā§āĻ¸.
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ, āĻĨā§āĻā§ āĻāĻāĻāĻž src/stats/examples/double-probe-example.cc, āĻŽā§āĻ˛āĻŋāĻ āĻĻā§āĻāĻžāĻ¯āĻŧ
āĻĄāĻžāĻŦāĻ˛āĻĒā§āĻ°ā§āĻŦāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻĒā§āĻ˛āĻžāĻŽā§āĻŦāĻŋāĻ āĻāĻ°āĻžāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻā§
āĻāĻāĻāĻŋ āĻāĻŽāĻŋāĻāĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§ (āĻļā§āĻ°ā§āĻŖāĻŋ āĻāĻŽāĻŋāĻāĻžāĻ°) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
Ptr emitter = CreateObject ();
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°", āĻāĻŽāĻŋāĻāĻžāĻ°);
...
Ptr probe1 = CreateObject ();
// āĻĒā§āĻ°ā§āĻŦāĻāĻŋāĻā§ āĻāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
bool connected = probe1->ConnectByObject ("āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°", emitter);
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻāĻāĻ āĻŦāĻŋāĻāĻŋāĻ°āĻŖāĻāĻžāĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻāĻāĻ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻā§āĨ¤ āĻāĻ
DoubleProbe, āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻĨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§
āĻ¸āĻāĻ¯ā§āĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻāĻŽāĻ¨āĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ¨āĻŋāĻā§āĻā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻāĻ°ā§āĻā§
āĻāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛; āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, ConnectByPath āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤
Ptr probe2 = CreateObject ();
// āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž
probe2->ConnectByPath ("/Names/Emitter/Counter");
āĻ¨āĻŋāĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ DoubleProbe-āĻ āĻāĻ° āĻĒāĻžāĻĨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ° āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯, āĻāĻŦāĻžāĻ° DoubleProbe āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĨ¤
Ptr probe3 = CreateObject ();
probe3->SetName ("Statically AccessedProbe");
// āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻĒā§āĻ°ā§āĻŦ", āĻĒā§āĻ°ā§āĻŦ3->āĻā§āĻāĻ¨āĻžāĻŽ (), āĻĒā§āĻ°ā§āĻŦ3);
āĻāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° Count() āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻāĻ¨ āĻāĻ DoubleProbe-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ
āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ:
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
āĻŦāĻŋāĻāĻŋāĻ°āĻŖāĻāĻžāĻ°ā§::āĻāĻŖāĻ¨āĻž (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
...
m_counter += 1.0;
DoubleProbe::SetValueByPath ("/Names/StaticallyAccessedProbe", m_counter);
...
}
āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻŦāĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻā§āĻĄāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸::āĻĒā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ ns2measure āĻāĻžāĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤
[Cic06], āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻŽāĻ¯āĻŧāĻŋāĻāĻāĻžāĻŦā§ Probe āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ printf, āĻŦāĻŋāĻŦā§āĻ¤āĻŋ
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŽāĻ§ā§āĻ¯ā§ ns-3 āĻŽāĻĄā§āĻ˛ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻāĻāĻŋāĻ¤ā§ DoubleProbe āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻāĻ āĻŽāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ, 2 āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŋāĻ˛:
1. āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ .cc āĻĢāĻžāĻāĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻŋāĻ˛
2. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻ¤āĻžāĻ° wscript āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ ns-3
āĻā§āĻĄ āĻŦā§āĻ¸āĨ¤
DoubleProbe āĻāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ DoubleProbe::SetValue(), āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¯āĻāĻ¨ DoubleProbe-āĻāĻ° āĻŽāĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻ°ā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
DoubleProbe::GetValue()āĨ¤
DoubleProbe āĻ¤āĻžāĻ° "āĻāĻāĻāĻĒā§āĻ" āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§; āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ§āĻžāĻ°āĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ (NotifyViaProbe) āĻšā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
connected = probe1->TraceConnect ("āĻāĻāĻāĻĒā§āĻ", probe1->GetName (), MakeCallback (&NotifyViaProbe));
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦ
DoubleProbe āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋāĻ āĻāĻĒāĻ˛āĻŦā§āĻ§:
Uinteger8Probe āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻāĻāĻāĻŋ uint8_t āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻā§āĨ¤
Uinteger16Probe āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻāĻāĻāĻŋ uint16_t āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻā§āĨ¤
Uinteger32Probe āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻāĻāĻāĻŋ uint32_t āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻā§āĨ¤
āĻĒā§āĻ¯āĻžāĻā§āĻāĻĒā§āĻ°ā§āĻŦ āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻā§āĨ¤
¡ ApplicationPacketProbe āĻāĻāĻāĻŋ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻā§āĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻā§
āĻ āĻŋāĻāĻžāĻ¨āĻžāĨ¤
¡ Ipv4PacketProbe āĻāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ ns-3 āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻāĻāĻāĻŋ IPv4 āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĨ¤
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻ§āĻ°āĻ¨ā§āĻ°
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻĒā§āĻ°āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
¡ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨
āĻĒā§āĻ°ā§āĻŦ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻā§āĻāĻā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻž āĻāĻžāĻāĻĒā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ
āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻŦ āĻ¯ā§ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĨ¤
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻ°ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ (.h) āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĢāĻžāĻāĻ˛ (.cc) āĻĻā§āĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛āĨ¤
¡ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°, āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤
¡ āĻā§āĻĄ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¤ āĻāĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨
āĻŽāĻ¤āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĻā§āĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§:
¡ āĻĄāĻžāĻŦāĻ˛ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
¡ IPv4 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ˛āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĄāĻŦāĻ˛ āĻĒā§āĻ°ā§āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĄāĻŦāĻ˛ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
in src/stats/examples/double-probe-example.cc. āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻ¯āĻž āĻāĻā§ āĻ¤āĻž āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻ°āĻ¤ā§,
āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ°āĻŖāĻāĻžāĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧāĻ¸āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤
āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻĄā§āĻāĻž āĻ¨āĻŋāĻ°ā§āĻāĻ¤ āĻāĻ°āĻžāĻ° āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
1. āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§:
āĻā§āĻ°ā§āĻ¸āĻĄ āĻā§āĻ¯āĻžāĻ˛ā§ m_āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°; // āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻāĻžāĻāĻĒ āĻšāĻŦā§
2. āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ°ā§āĻŦā§ āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ:
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
āĻŦāĻŋāĻāĻŋāĻ°āĻŖāĻāĻžāĻ°ā§::āĻāĻŖāĻ¨āĻž (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
NS_LOG_FUNCTION (āĻāĻāĻŋ);
NS_LOG_DEBUG ("āĻāĻ¤ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻā§āĻā§ " << āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻāĻāĻ¨ ().āĻā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ ());
m_counter += 1.0;
DoubleProbe::SetValueByPath ("/Names/StaticallyAccessedProbe", m_counter);
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻļāĻŋāĻĄāĻŋāĻāĻ˛ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (m_var->GetValue ()), &Emitter::count, this);
}
āĻāĻ¸ā§āĻ¨ āĻāĻ°āĻ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻ¸āĻšāĻāĻžāĻ°ā§ āĻĒā§āĻ°ā§āĻŦāĻāĻŋ āĻĻā§āĻāĻŋāĨ¤ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻžāĻ¨ āĻāĻāĻžāĻ§āĻŋāĻāĻ¤ā§ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻĒāĻžāĻ¯āĻŧ:
1. āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž
2. āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻāĻŦāĻ a āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž
āĻāĻāĻž āĻā§āĻ°ā§āĻ¸ āĻĄā§āĻŦāĻž
3. āĻāĻ˛āĻŋāĻ āĻā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ˛āĻŋāĻ āĻ¸ā§āĻ āĻā§āĻ¯āĻžāĻ˛ā§() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
4. āĻāĻ˛āĻŋāĻ āĻā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻ˛ āĻāĻ°āĻž SetValueByPath
("/āĻĒāĻžāĻĨ/āĻĨā§āĻ°ā§/āĻāĻ¨āĻĢāĻŋāĻ/āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸", ...)
āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻā§āĻļāĻ˛ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§,
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻšā§āĻāĻŋāĻ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns-3. āĻāĻ
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ 0) āĻ¨ā§āĻā§ āĻāĻ˛ āĻāĻ°āĻŦāĨ¤
// āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻž āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻāĻž āĻĢāĻžāĻāĻļāĻ¨ āĻšā§āĻ āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
NotifyViaTraceSource (std::string context, double oldVal, double newVal)
{
NS_LOG_DEBUG ("āĻĒā§āĻ°āĻ¸āĻā§āĻ: " << āĻĒā§āĻ°āĻ¸āĻā§āĻ << " āĻĒā§āĻ°āĻžāĻ¨ā§ " << āĻĒā§āĻ°āĻžāĻ¨ā§ āĻā§āĻ¯āĻžāĻ˛ << " āĻ¨āĻ¤ā§āĻ¨ " << āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¯āĻžāĻ˛);
}
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻŋāĻāĻžāĻ° āĻ¸ā§āĻāĻāĻĒ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°:
Ptr emitter = CreateObject ();
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻāĻŽāĻŋāĻāĻžāĻ°", āĻāĻŽāĻŋāĻāĻžāĻ°);
// Emitter āĻ āĻŦāĻā§āĻā§āĻ āĻāĻāĻāĻŋ ns-3 āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ
// āĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻļā§āĻ°ā§ āĻšāĻŦā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻļāĻŋāĻĄāĻŋāĻāĻ˛ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (0.0), &āĻāĻŽāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻāĻžāĻ°ā§āĻ, āĻāĻŽāĻŋāĻāĻžāĻ°);
āĻ¨āĻŋāĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ DoubleProbes āĻāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§āĨ¤
āĻā§āĻ¸ 0):
// āĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻāĻžāĻĄāĻŧāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ
// (āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨)
//
connected = emitter->TraceConnect ("āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°", "āĻ¨āĻŽā§āĻ¨āĻž āĻĒā§āĻ°āĻ¸āĻā§āĻ", MakeCallback (&NotifyViaTraceSource));
NS_ASSERT_MSG (āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, "āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ");
āĻŽāĻžāĻŽāĻ˛āĻž 1):
//
// Probe1 āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻŽāĻŋāĻāĻžāĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ āĻŦāĻā§āĻā§āĻā§ āĻšā§āĻ āĻāĻ°āĻž āĻšāĻŦā§
//
// probe1 āĻāĻŽāĻŋāĻāĻžāĻ° āĻā§āĻ°ā§āĻ¸ āĻā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§
Ptr probe1 = CreateObject ();
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
probe1->SetName ("ObjectProbe");
// āĻĒā§āĻ°ā§āĻŦāĻāĻŋāĻā§ āĻāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
connected = probe1->ConnectByObject ("āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°", emitter);
NS_ASSERT_MSG (āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, "āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ");
āĻŽāĻžāĻŽāĻ˛āĻž 2):
//
// Probe2 āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻŋāĻāĻžāĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻšā§āĻ āĻāĻ°āĻž āĻšāĻŦā§
// āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒāĻžāĻĨ āĻ¨āĻžāĻŽā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž
//
// āĻāĻ°ā§āĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻĒā§āĻ°ā§āĻŦ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨; āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĒāĻžāĻĨā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻšā§āĻ āĻāĻĒ āĻšāĻŦā§
Ptr probe2 = CreateObject ();
probe2->SetName ("PathProbe");
// āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž
probe2->ConnectByPath ("/Names/Emitter/Counter");
āĻā§āĻ¸ 4) (āĻā§āĻ¸ 3 āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĻ¨āĻŋ):
//
// Probe3 āĻāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§
// āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ SetValueByPath()āĨ¤
//
Ptr probe3 = CreateObject ();
probe3->SetName ("Statically AccessedProbe");
// āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¨āĻžāĻŽ::āĻ ā§āĻ¯āĻžāĻĄ ("/āĻ¨āĻžāĻŽ/āĻĒā§āĻ°ā§āĻŦ", āĻĒā§āĻ°ā§āĻŦ3->āĻā§āĻāĻ¨āĻžāĻŽ (), āĻĒā§āĻ°ā§āĻŦ3);
āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
// āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¨āĻŋāĻā§āĻ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨
// āĻāĻ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¨āĻžāĻŽ) āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ¨āĻŋāĻ°āĻ¸āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§
// āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻā§āĻ¸
connected = probe3->TraceConnect ("āĻāĻāĻāĻĒā§āĻ",
"/Names/Probes/Statically AccessedProbe/Output",
āĻŽā§āĻāĻāĻ˛āĻŦā§āĻ¯āĻžāĻ (&NotifyViaProbe));
NS_ASSERT_MSG (āĻ¸āĻāĻ¯ā§āĻā§āĻ¤, "āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¨āĻ¯āĻŧ .. probe3 āĻāĻāĻāĻĒā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤");
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻŽā§āĻ˛āĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻĒā§āĻ°ā§āĻŦ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
// āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻāĻāĻĒā§āĻā§ āĻšā§āĻ āĻāĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
NotifyViaProbe (std::āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻ¸āĻā§āĻ, āĻĄāĻŦāĻ˛ OldVal, āĻĄāĻŦāĻ˛ newVal)
{
NS_LOG_DEBUG ("āĻĒā§āĻ°āĻ¸āĻā§āĻ: " << āĻĒā§āĻ°āĻ¸āĻā§āĻ << " āĻĒā§āĻ°āĻžāĻ¨ā§ " << āĻĒā§āĻ°āĻžāĻ¨ā§ āĻā§āĻ¯āĻžāĻ˛ << " āĻ¨āĻ¤ā§āĻ¨ " << āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¯āĻžāĻ˛);
}
IPv4 āĻŽā§āĻĄāĻŧāĻ āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ
IPv4 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ˛āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻĒāĻā§āĻāĻŽ.cc āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ ns-3 āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĨ¤ āĻāĻāĻž
āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ src/stats/examples/ipv4-packet-plot-example.cc.
āĻ¨ā§āĻĄ 0 āĻ¨ā§āĻĄ 1
+----------------+ +----------------+
| ns-3 TCP | | ns-3 TCP |
+----------------+ +----------------+
| 10.1.1.1 | | 10.1.1.2 |
+----------------+ +----------------+
| āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ | | āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ |
+----------------+ +----------------+
| |
+------------
āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻ˛ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻŦ, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻ¯ā§ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻžāĻ āĻžāĻŽā§ (āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒā§āĻ¯āĻžāĻā§āĻ) āĻāĻŦāĻ āĻ¸ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĻ¨
āĻļā§āĻ§ā§ āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻŧā§āĨ¤
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĻāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒāĻ°ā§ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¨āĻŋāĻā§āĻ (āĻāĻāĻāĻĒā§āĻ) āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŖāĻ¨āĻž
āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻŦāĻžāĻāĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž (āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻ).
āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ
Ipv4PacketProbe::GetTypeId ()
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::Ipv4PacketProbe")
.SetParent ()
.AddConstructor ()
.AddTraceSource ( "āĻāĻāĻāĻĒā§āĻ",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻŦāĻ āĻāĻ° IPv4 āĻ āĻŦāĻā§āĻā§āĻ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¯āĻž āĻāĻ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_output))
.TraceSource āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ ( "āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻāĻ¸",
"āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻŦāĻžāĻāĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_outputBytes))
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
āĻ¯āĻāĻ¨ āĻĒā§āĻ°ā§āĻŦā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻĒā§āĻ°ā§āĻŦ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§
āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻāĻāĻĒā§āĻ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻŦāĻžāĻāĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§
āĻāĻāĻāĻĒā§āĻāĻŦāĻžāĻāĻ āĻā§āĻ¸ āĻā§āĻ°ā§āĻ¸.
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
Ipv4PacketProbe::TraceSink (Ptr āĻĒā§āĻ¯āĻžāĻā§āĻ, Ptr ipv4, uint4_t āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸)
{
NS_LOG_FUNCTION (āĻāĻ << āĻĒā§āĻ¯āĻžāĻā§āĻ << ipv4 << āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
āĻ¯āĻĻāĻŋ (āĻ¸āĻā§āĻˇāĻŽ ())
{
m_packet = āĻĒā§āĻ¯āĻžāĻā§āĻ;
m_ipv4 = ipv4;
m_interface = āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸;
m_output (āĻĒā§āĻ¯āĻžāĻā§āĻ, ipv4, āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸);
uint32_t packetSizeNew = āĻĒā§āĻ¯āĻžāĻā§āĻ->GetSize ();
m_outputBytes (m_packetSizeOld, packetSizeNew);
m_packetSizeOld = packetSizeNew;
}
}
āĻ¤āĻĨā§āĻ¯āĻ¸ā§āĻ¤ā§āĻ°
[Cic06]
Claudio Cicconetti, Enzo Mingozzi, Giovanni Stea, "āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻžāĻ āĻžāĻŽā§
āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž ns2, āĻāĻ°ā§āĻŽāĻļāĻžāĻ˛āĻž
ns-2 (WNS2), āĻĒāĻŋāĻ¸āĻž, āĻāĻ¤āĻžāĻ˛āĻŋ, āĻ āĻā§āĻā§āĻŦāĻ° 2006āĨ¤
āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ
āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨āĻ§āĻžāĻ°āĻā§ˇ
āĻāĻāĻāĻŋ āĻĨā§āĻā§ āĻā§āĻ˛āĻžāĻ¸ ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻ¯āĻŧāĨ¤
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ: ns-3.18 āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻ¨āĻ āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ
āĻāĻžāĻ āĻžāĻŽā§āĻ°āĨ¤
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŖ
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻļā§āĻ°ā§āĻŖā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ ns-3
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
ns-3 āĻā§āĻ˛āĻ¸ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻšāĻ˛ a
āĻ āĻāĻļ, āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§āĨ¤
āĻ¸āĻŽāĻˇā§āĻāĻŋāĻŦāĻŋāĻĻ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻšā§āĻ āĻāĻ°āĻžāĻ° āĻāĻĨāĻž
āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨āĨ¤ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻšāĻ˛ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻšā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻļā§āĻˇ āĻŦāĻŋāĻ¨ā§āĻĻā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°ā§āĻŦ āĻāĻŦāĻ āĻāĻžāĻ˛ā§āĻā§āĻāĻ°āĨ¤ āĻāĻā§āĻ˛ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°ā§āĻ° āĻāĻžāĻ
āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻāĻāĻĒā§āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ˛ā§āĻāĻ¨ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛,
āĻ¸ā§āĻĒā§āĻ°ā§āĻĄāĻļā§āĻ āĻĢāĻžāĻāĻ˛, āĻĒā§āĻ˛āĻ, āĻŦāĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻāĻāĻŋ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, āĻ¯āĻāĻ¨āĻ
āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°ā§, āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻŽāĻžāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻŋ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻāĻāĻĒā§āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĄā§āĻāĻž āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ° āĻĒāĻ°ā§ āĻĨāĻžāĻāĻŦā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĨ¤
Aggregators āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨:
¡ āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°āĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻ˛ā§ āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻā§āĻˇāĻŽ() āĻāĻŦāĻ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ(). āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĄā§āĻāĻž āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻŽāĻāĻĒ āĻĢā§āĻ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻ¸ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĢāĻžāĻāĻ¨āĻžāĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻž
āĻāĻāĻāĻĒā§āĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽāĨ¤
¡ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻāĻāĻ¨ āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§
āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°āĻā§, Aggregator āĻāĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ TraceConnect-āĻ āĻāĻāĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻŋāĻā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻāĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§:
¡ GnuplotAggregator
¡ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°
GnuplotAggregator
GnuplotAggregator gnuplots āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
GnuplotAggregator āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻļā§āĻˇā§ 3āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§:
āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻŋāĻāĻā§āĻ¤ gnuplot āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛
āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛
gnuplot āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
āĻ¸ā§āĻˇā§āĻāĻŋ
āĻā§ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ° āĻ¤āĻž āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§ GnuplotAggregator āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ GnuplotAggregator āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§
(Ptr ) āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻš āĻĄāĻžāĻ¯āĻŧāĻ¨āĻžāĻŽāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ GnuplotAggregator āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ°
āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ ns-3 āĻĒāĻĻā§āĻ§āĻ¤āĻŋ CreateObject(). āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ
src/stats/examples/gnuplot-aggregator-example.cc āĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ:
string fileNameWithoutExtension = "gnuplot-āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°";
// āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
Ptr aggregator =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (fileNameWithoutExtension);
āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ, fileNameWithoutExtension, āĻāĻ° āĻ¨āĻžāĻŽ
gnuplot āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻā§āĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻž āĻ˛āĻŋāĻāĻ¤ā§. āĻāĻ GnuplotAggregator āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
"gnuplot-aggregator.dat" āĻ¨āĻžāĻŽā§ āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻŋāĻāĻā§āĻ¤ gnuplot āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛, āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛
"gnuplot-aggregator.plt" āĻ¨āĻžāĻŽā§, āĻāĻŦāĻ + āĻ¨āĻžāĻŽā§āĻ° gnuplot āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
"gnuplot-aggregator.sh"āĨ¤
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž gnuplot āĻāĻ° āĻā§ 4āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§:
¡ āĻāĻžāĻŦāĻŋ āĻ¨ā§āĻ
¡ āĻĒā§āĻ˛āĻā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻā§ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ)
¡ āĻĒā§āĻ˛āĻā§āĻ° āĻāĻĒāĻ°ā§ āĻā§
¡ āĻĒā§āĻ˛āĻā§āĻ° āĻ¨ā§āĻā§ āĻā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ gnuplot āĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ enum āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻāĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤:
enum āĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ {
āĻāĻžāĻŦāĻŋ āĻ¨ā§āĻ,
KEY_INSIDE,
KEY_ABOVE,
KEY_BELOW
};
āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻŋāĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻ¨ā§āĻā§āĻ° āĻāĻžāĻŦāĻŋāĻāĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻāĻžāĻ¯āĻŧ āĻ¤āĻŦā§
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨.
aggregator->SetKeyLocation(GnuplotAggregator::KEY_BELOW);
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§:
āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻā§āĻāĻžāĻ¨āĻĒā§āĻ˛āĻ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻŦāĻŋāĻĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
GnuplotAggregator āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
src/stats/examples/gnuplot-aggregator-example.cc.
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ 2-D gnuplot āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
[āĻāĻŦāĻŋ] 2-āĻĄāĻŋ āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ gnuplot-aggregator-example.cc āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ..UNINDENT
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻāĻ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ GnuplotAggregator āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĒāĻ°ā§āĨ¤
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° Create2dPlot ()
{
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileNameWithoutExtension = "gnuplot-āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°";
string plotTitle = "āĻā§āĻ¨ā§āĻĒā§āĻ˛āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻĒā§āĻ˛āĻ";
string plotXAxisHeading = "āĻ¸āĻŽāĻ¯āĻŧ (āĻ¸ā§āĻā§āĻ¨ā§āĻĄ)";
string plotYAxisHeading = "āĻĻā§āĻŦā§āĻ¤ āĻŽāĻžāĻ¨";
string plotDatasetLabel = "āĻĄā§āĻāĻž āĻŽāĻžāĻ¨";
string datasetContext = "āĻĄā§āĻāĻžāĻ¸ā§āĻ/āĻĒā§āĻ°āĻ¸āĻā§āĻ/āĻ¸ā§āĻā§āĻ°āĻŋāĻ";
// āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
Ptr aggregator =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (fileNameWithoutExtension);
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ GnuplotAggregator āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨāĻžāĻāĻŦā§ 2-D āĻĄā§āĻāĻžāĻ¸ā§āĻ
āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻāĻ°āĻž
// āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->SetTerminal ("png");
aggregator->SetTitle (plotTitle);
aggregator->SetLegend (plotXAxisHeading, plotYAxisHeading);
// āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->Add2dDataset (dataset Context, plotDatasetLabel);
// āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
aggregator->āĻ¸āĻā§āĻˇāĻŽ ();
āĻāĻ° āĻĒāĻ°ā§, 2-āĻĄāĻŋ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§ˇ
GnuplotAggregator āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ˛āĻŋāĻā§āĻ¨2d() āĻĢāĻžāĻāĻļāĻ¨.
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻ¸āĻŽāĻ¯āĻŧ;
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨;
// 2-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (āĻ¸āĻŽāĻ¯āĻŧ = -5.0; āĻ¸āĻŽāĻ¯āĻŧ <= +5.0; āĻ¸āĻŽāĻ¯āĻŧ += 1.0)
{
// 2-āĻĄāĻŋ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2/XNUMX/XNUMX
// āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧāĨ¤
//
āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧ * āĻ¸āĻŽāĻ¯āĻŧ;
// āĻĒā§āĻ˛āĻā§ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->Write2d (āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻāĻ¨āĻā§āĻā§āĻ¸āĻ, āĻ¸āĻŽāĻ¯āĻŧ, āĻŽāĻžāĻ¨);
}
// āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ˛āĻāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->āĻ āĻā§āĻˇāĻŽ ();
}
āĻĢāĻžāĻāĻ˛ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°
FileAggregator āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤
FileAggregator 4āĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§:
¡ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻŋāĻ¤
¡ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ)
¡ āĻāĻŽāĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
¡ āĻā§āĻ¯āĻžāĻŦ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽā§āĻĻā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ C-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻŦāĻ sprintf() āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻž āĻšāĻā§āĻā§āĨ¤
āĻ¸ā§āĻˇā§āĻāĻŋ
āĻā§ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ° āĻ¤āĻž āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§ FileAggregator āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§ (Ptr )
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻš āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻāĻāĻ¨āĻā§ āĻā§āĻŦāĻ˛ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻĻā§āĻ¯ ns-3 āĻĒāĻĻā§āĻ§āĻ¤āĻŋ CreateObject. āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ
src/stats/examples/file-aggregator-example.cc āĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ:
string fileName = "file-agregator-formatted-values.txt";
// āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻĨāĻžāĻāĻŦā§āĨ¤
Ptr aggregator =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ);
āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ, āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ; āĻĻā§āĻ¯
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋ, āĻĢāĻžāĻāĻ˛ āĻāĻžāĻāĻĒ, āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤ āĻāĻ FileAggregator āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
"file-agregator-formatted-values.txt" āĻ¨āĻžāĻŽā§āĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤
āĻĢāĻžāĻāĻ˛ āĻāĻžāĻāĻĒ, āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻāĻžāĻ° enum āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤:
enum āĻĢāĻžāĻāĻ˛ āĻāĻžāĻāĻĒ {
āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§āĻĄ,
SPACE_SEPARATED,
COMMA_SEPARATED,
TAB_SEPARATED
};
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§:
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻŦāĻŋāĻĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
src/stats/examples/file-aggregator-example.cc.
āĻāĻŽāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° 2 āĻāĻ˛āĻžāĻŽ āĻ¸āĻš āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻžāĻ ā§āĻ¯ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĻāĻžāĻšāĻ°āĻŖ
-5,25
-4,16
-3,9
-2,4
-1,1
0,0
1,1
2,4
3,9
4,16
5,25
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻāĻ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĒāĻ°ā§āĨ¤
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŽāĻž āĻŦāĻŋāĻāĻžāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ ()
{
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileName = "āĻĢāĻžāĻāĻ˛-āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ°-āĻāĻŽāĻž-āĻŦāĻŋāĻāĻžāĻāĻŋāĻ¤.txt";
string datasetContext = "āĻĄā§āĻāĻžāĻ¸ā§āĻ/āĻĒā§āĻ°āĻ¸āĻā§āĻ/āĻ¸ā§āĻā§āĻ°āĻŋāĻ";
// āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
Ptr aggregator =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::COMMA_SEPARATED);
FileAggregator āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
// āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
aggregator->āĻ¸āĻā§āĻˇāĻŽ ();
āĻāĻ° āĻĒāĻ°ā§, 2-āĻĄāĻŋ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§ˇ
FileAggregator āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ˛āĻŋāĻā§āĻ¨2d() āĻĢāĻžāĻāĻļāĻ¨.
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻ¸āĻŽāĻ¯āĻŧ;
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨;
// 2-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (āĻ¸āĻŽāĻ¯āĻŧ = -5.0; āĻ¸āĻŽāĻ¯āĻŧ <= +5.0; āĻ¸āĻŽāĻ¯āĻŧ += 1.0)
{
// 2-āĻĄāĻŋ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2/XNUMX/XNUMX
// āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧāĨ¤
//
āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧ * āĻ¸āĻŽāĻ¯āĻŧ;
// āĻĒā§āĻ˛āĻā§ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->Write2d (āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻāĻ¨āĻā§āĻā§āĻ¸āĻ, āĻ¸āĻŽāĻ¯āĻŧ, āĻŽāĻžāĻ¨);
}
// āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ˛āĻāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->āĻ āĻā§āĻˇāĻŽ ();
}
āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° 2 āĻāĻ˛āĻžāĻŽ āĻ¸āĻš āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻžāĻ ā§āĻ¯ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¸āĻŽāĻ¯āĻŧ = -5.000e+00 āĻŽāĻžāĻ¨ = 25
āĻ¸āĻŽāĻ¯āĻŧ = -4.000e+00 āĻŽāĻžāĻ¨ = 16
āĻ¸āĻŽāĻ¯āĻŧ = -3.000e+00 āĻŽāĻžāĻ¨ = 9
āĻ¸āĻŽāĻ¯āĻŧ = -2.000e+00 āĻŽāĻžāĻ¨ = 4
āĻ¸āĻŽāĻ¯āĻŧ = -1.000e+00 āĻŽāĻžāĻ¨ = 1
āĻ¸āĻŽāĻ¯āĻŧ = 0.000e+00 āĻŽāĻžāĻ¨ = 0
āĻ¸āĻŽāĻ¯āĻŧ = 1.000e+00 āĻŽāĻžāĻ¨ = 1
āĻ¸āĻŽāĻ¯āĻŧ = 2.000e+00 āĻŽāĻžāĻ¨ = 4
āĻ¸āĻŽāĻ¯āĻŧ = 3.000e+00 āĻŽāĻžāĻ¨ = 9
āĻ¸āĻŽāĻ¯āĻŧ = 4.000e+00 āĻŽāĻžāĻ¨ = 16
āĻ¸āĻŽāĻ¯āĻŧ = 5.000e+00 āĻŽāĻžāĻ¨ = 25
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻāĻ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻĒāĻ°ā§āĨ¤
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° CreateFormattedFile ()
{
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileName = "file-agregator-formatted-values.txt";
string datasetContext = "āĻĄā§āĻāĻžāĻ¸ā§āĻ/āĻĒā§āĻ°āĻ¸āĻā§āĻ/āĻ¸ā§āĻā§āĻ°āĻŋāĻ";
// āĻāĻāĻāĻŋ āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻĨāĻžāĻāĻŦā§āĨ¤
Ptr aggregator =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°::āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ);
āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§, āĻ¸āĻŋ-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
// āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->Set2dFormat ("Time = %.3e\tValue = %.0f");
// āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
aggregator->āĻ¸āĻā§āĻˇāĻŽ ();
āĻāĻ° āĻĒāĻ°ā§, 2-āĻĄāĻŋ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§ˇ
FileAggregator āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ˛āĻŋāĻā§āĻ¨2d() āĻĢāĻžāĻāĻļāĻ¨.
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻ¸āĻŽāĻ¯āĻŧ;
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨;
// 2-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (āĻ¸āĻŽāĻ¯āĻŧ = -5.0; āĻ¸āĻŽāĻ¯āĻŧ <= +5.0; āĻ¸āĻŽāĻ¯āĻŧ += 1.0)
{
// 2-āĻĄāĻŋ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2/XNUMX/XNUMX
// āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧāĨ¤
//
āĻŽāĻžāĻ¨ = āĻ¸āĻŽāĻ¯āĻŧ * āĻ¸āĻŽāĻ¯āĻŧ;
// āĻĒā§āĻ˛āĻā§ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->Write2d (āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻāĻ¨āĻā§āĻā§āĻ¸āĻ, āĻ¸āĻŽāĻ¯āĻŧ, āĻŽāĻžāĻ¨);
}
// āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ˛āĻāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨āĨ¤
aggregator->āĻ āĻā§āĻˇāĻŽ ();
}
āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ°
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ ns-3
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
ns-3 āĻā§āĻ˛āĻ¸ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻāĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻ āĻāĻļ,
āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: 'āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻ°' āĻļāĻŦā§āĻĻāĻāĻŋāĻ 'āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ°' āĻŦāĻžāĻ¨āĻžāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§; āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻŦāĻžāĻ¨āĻžāĻ¨ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ
C++ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸āĻšāĨ¤
āĻāĻĄāĻžāĻĒāĻāĻžāĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° DCF āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻ āĻŦāĻ§āĻŋ, āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
¡ āĻāĻžāĻāĻŽ āĻ¸āĻŋāĻ°āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻ°
āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ°āĻŽ āĻāĻĄāĻžāĻĒāĻāĻžāĻ°
TimeSeriesAdaptor āĻĒā§āĻ°ā§āĻŦāĻā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻžāĻ˛ā§āĻā§āĻāĻ°āĨ¤
āĻāĻāĻ¯āĻŧ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ DCF āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ°āĻž āĻ¤āĻĻāĻ¨ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ TimeSeriesAdaptors āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻŦāĻ āĻāĻāĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻš āĻŽāĻžāĻ¨
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāĻ°āĻ¤ā§
TimeSeriesAdaptor āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻā§āĻŽāĻŋāĻāĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻ°ā§āĻ° āĻā§āĻŽāĻŋāĻāĻž, āĻ¯āĻž āĻāĻžāĻāĻāĻž-āĻŽā§āĻ˛ā§āĻ¯ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻĒā§āĻ°ā§āĻŦ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻĒāĻ˛ āĻāĻāĻāĻĒā§āĻ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻšāĻ˛ āĻ
āĻāĻžāĻāĻŽāĻ¸ā§āĻā§āĻ¯āĻžāĻŽā§āĻĒ, āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¯ā§āĻŽāĻ¨ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ, āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)
āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻšāĻžāĻ°ā§āĻĄāĻā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻšāĻ˛ a āĻāĻ° āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°
āĻ¨āĻ¨-āĻĄāĻŦāĻ˛ āĻŽāĻžāĻ¨ āĻĨā§āĻā§ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻŽāĻžāĻ¨ (āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻšāĻžāĻ°āĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§)āĨ¤
āĻ¸ā§āĻ¯ā§āĻ/āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻĒā§āĻ°ā§āĻŦāĻā§āĻ˛āĻŋ DCF āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨āĻĒā§āĻ°ā§āĻŦ
¡ āĻĄāĻžāĻŦāĻ˛āĻĒā§āĻ°ā§āĻŦ
¡ Uinteger8Probe
¡ Uinteger16Probe
¡ Uinteger32Probe
¡ āĻāĻžāĻāĻŽāĻĒā§āĻ°ā§āĻŦ
¡ āĻĒā§āĻ¯āĻžāĻā§āĻāĻĒā§āĻ°ā§āĻŦ
¡ ApplicationPacketProbe
¡ Ipv4PacketProbe
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, DCF-āĻ āĻā§āĻ¨ āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¯āĻĻāĻŋāĻ āĻāĻāĻāĻ¨ BasicStatsCollector āĻāĻ° āĻ āĻ§ā§āĻ¨ā§
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ Aggregators DCF-āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
¡ GnuplotAggregator
¡ āĻĢāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ°āĻāĻŋ DCF āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻāĻžāĻāĻŽ-āĻ¸āĻŋāĻ°āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻ°āĨ¤
āĻāĻŦāĻŋāĻˇā§āĻ¯ā§ āĻšā§āĻž āĻ¯āĻžāĻ ?
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻā§ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ¯āĻž āĻāĻāĻ¨āĻ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°:
¡ āĻāĻ°āĻ āĻā§āĻ°ā§āĻ¸ āĻāĻ¤ā§āĻ¸āĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ ns-3 āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻĨā§āĻā§ āĻāĻ°āĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ āĻā§āĻĄāĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¯āĻ¤ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°ā§āĻŦ āĻāĻā§ āĻ¤āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°ā§āĻŦ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ 2-āĻĄāĻŋ āĻāĻžāĻ˛ā§āĻā§āĻāĻ°, āĻŦā§āĻ¸āĻŋāĻāĻ¸ā§āĻā§āĻ¯āĻžāĻāĻ¸āĻāĻ˛ā§āĻā§āĻāĻ°ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
¡ āĻāĻ°āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
¡ āĻļā§āĻ§ā§ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻ°ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĻ¸āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨āĻāĻ¤ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻžāĻā§āĻ° āĻ°ā§āĻĒāĻ°ā§āĻāĻž āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§
ns-3.
āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¸ āĻā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĨāĻžāĻā§ src/āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨.
āĻā§āĻ˛
āĻāĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
¡ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ°ā§āĻāĻ°ā§āĻĄ, āĻāĻŖāĻ¨āĻž āĻāĻŦāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ°āĨ¤
¡ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻā§āĻ°ā§āĻ¸ āĻ˛āĻ āĻāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°ā§āĻ¨
āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
¡ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻŦāĻž
āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛
āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻĒ-āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˛āĻā§āĻˇā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§:
āĻŦā§āĻ¸āĻŋāĻ āĻāĻ¨ā§āĻ¸āĻā§āĻ°ā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ ns-3 āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻā§āĻāĻ°āĻŖ
āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻā§āĻāĻŋāĻ¨ā§āĻ°, āĻ¯ā§āĻŽāĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ, āĻ¨ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĨ¤
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ.
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻĄā§āĻāĻž āĻ¤ā§āĻ°āĻŋ, āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻžāĨ¤
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ¨ā§āĻ¸āĻā§āĻ°ā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻā§āĻ¨ā§āĻ āĻāĻŦāĻ
āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°ā§āĨ¤
¡ āĻāĻŽ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻŦāĻ CPU āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻ¯āĻāĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
¡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŋāĻā§ āĻŽā§āĻ˛āĻŋāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĢā§āĻāĻžāĻ¸ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻŦāĻ āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻŋāĻ¤ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯āĨ¤
¡ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ°āĻžāĻāĻ¨ā§āĻĄā§āĨ¤
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§:
¡ āĻŽā§āĻ˛ āĻāĻžāĻ āĻžāĻŽā§ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ: āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨/āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ/āĻāĻĄāĻŧ/āĻŽā§āĻ
āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻ
āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻšāĻā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ˛ā§āĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĨ¤
¡ āĻĒā§āĻ˛ā§āĻāĻ¨āĻā§āĻā§āĻ¸āĻ āĻāĻāĻāĻĒā§āĻ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ OMNet++.
¡ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ SQLite, āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°, āĻ˛āĻžāĻāĻāĻāĻ¯āĻŧā§āĻ, āĻāĻā§āĻ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ SQL āĻāĻā§āĻāĻŋāĻ¨āĨ¤
¡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻŦāĻ āĻ°āĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§āĻ˛āĻ āĻāĻŦāĻ āĻā§āĻ˛āĻž āĻļā§āĻˇ āĻŽā§āĻāĻžāĻĄā§āĻāĻžāĨ¤
NS-3 āĻāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ ā§āĻ¯āĻžāĻĄāĻšāĻ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§:
¡ āĻāĻāĻāĻŋ āĻĻā§āĻāĻŋ āĻ¨ā§āĻĄ āĻ ā§āĻ¯āĻžāĻĄāĻšāĻ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻžāĻāĻāĻĄ āĻĻā§āĻ°āĻ¤ā§āĻŦ āĻ¸āĻš
āĻĒā§āĻĨāĻā§.
¡ UDP āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻ¸āĻŋāĻā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻ
āĻ¸ā§āĻāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§āĻ° āĻšā§āĻāĨ¤
¡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻāĻā§āĻ¤ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ NS-3 āĻā§āĻ° āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻĄā§āĻāĻž
āĻĢā§āĻ°ā§āĻŽ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ MAC āĻ āĻŦāĻā§āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤.
¡ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻāĻā§āĻ¤ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻĒāĻāĻ°āĻŖ
āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻĒāĻĄā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĨ¤ āĻ¤āĻĨā§āĻ¯ āĻŽā§āĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻāĻŦāĻ āĻā§āĻšā§āĻ¤, āĻŦāĻžāĻāĻ āĻĒā§āĻ°ā§āĻ°āĻŖ, āĻāĻŦāĻ āĻļā§āĻˇ āĻĨā§āĻā§ āĻļā§āĻˇ āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĨ¤
¡ āĻāĻ¨ā§āĻĄ-āĻā§-āĻāĻ¨ā§āĻĄ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
¡ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻžāĻ˛āĻžāĻ¯āĻŧ
āĻĻā§āĻ°āĻ¤ā§āĻŦ āĻāĻŦāĻ āĻāĻŋāĻāĻ¨āĻāĻāĻĒā§āĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§āĨ¤
āĻāĻ°āĻ¤ā§
āĻāĻā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻāĻā§āĻŽ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤:
¡ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻā§āĻĄ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĻŋ, āĻ¯ā§āĻŽāĻ¨ āĻŽā§āĻŽāĻ°āĻŋ āĻĻāĻā§āĻˇ āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
¡ āĻ°āĻžāĻ¨ āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻ§āĻžāĻ¨, āĻ āĻ°ā§āĻĨāĻžāĻ¤ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĨā§āĻ°ā§āĻļāĻšā§āĻ˛ā§āĻĄ āĻŦāĻž
āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻĒā§āĻ°āĻŖ āĻšāĻ¯āĻŧāĨ¤
¡ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻŽā§āĻ¨āĻž āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ, āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻāĻāĻāĻĒā§āĻāĨ¤
¡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻŋāĻā§ āĻŽāĻžāĻ¨ āĻĒā§āĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻā§āĻ°ā§āĻ¯āĻŧ āĻāĻāĻ¨āĻž āĻāĻ āĻžāĻ˛ā§ āĻ˛ā§āĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻāĻā§ āĻ¸āĻšāĻāĻŦā§āĻ§ā§āĻ¯ āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻ āĻāĻŋāĻāĻŽāĻ¨
āĻāĻžāĻ āĻžāĻŽā§āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŽā§āĻ˛ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
¡ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻž āĻšā§āĻ āĻ¨āĻž āĻā§āĻ¨
āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻŦāĻž āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§āĨ¤
¡ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĨ¤
¡ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ˛āĻ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻŦāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĨ¤
NS-3 āĻā§āĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§
āĻ¸āĻāĻā§āĻ¤ āĻā§āĻ°ā§āĻ¸āĨ¤
¡ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ āĻŦāĻž āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻāĻžāĻ¸ā§āĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻĄāĨ¤
āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¸ā§āĻ āĻŽā§āĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¤ā§ āĻāĻŋāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¤ā§āĻ°āĨ¤ [āĻāĻŦāĻŋ]
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ
āĻāĻāĻŋ āĻĨā§āĻā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° (āĻā§āĻ°āĻžāĻĢ) āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž, āĻāĻžāĻ āĻžāĻŽā§ āĻāĻŦāĻ API āĻŦāĻ°āĻžāĻŦāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž
āĻ°āĻžāĻ¸ā§āĻ¤āĻž.
āĻĒā§āĻ°āĻļā§āĻ¨
''āĻāĻ¨āĻāĻ¸-ā§Š āĻāĻ° āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° (āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§) āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻā§?
āĻ¸ā§āĻāĻŋāĻāĻ¸)? āĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ˛ā§āĻ¸ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§ āĻāĻ¤ āĻĻā§āĻ°ā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻŦā§āĻ¨?''
āĻšāĻžāĻāĻĒā§āĻĨāĻŋāĻ¸āĻŋāĻ¸: āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻ¯ā§āĻā§āĻ¤āĻŋāĻ¸āĻā§āĻāĻ¤āĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻ¤āĻ¤ 100 āĻŽāĻŋ āĻĻā§āĻ°ā§āĨ¤ 200 āĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŦā§āĻļāĻŋ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ
āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯.
āĻ¯āĻĻāĻŋāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¸āĻā§āĻā§ āĻā§āĻŦ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¨āĻ¯āĻŧ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ
āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻāĻžāĻĒāĻĄāĻŧāĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋāĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ
āĻ˛āĻžāĻāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻāĻ°āĻž āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨.
āĻŦā§āĻ¯āĻžāĻ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ
āĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ. āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ example/stats/wifi-example-sim.cc.
āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻāĻ°ā§āĨ¤
¡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻž ns3::āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨.
āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻĻā§āĻ°āĻ¤ā§āĻŦ = ā§Ģā§Ļ.ā§Ļ;
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ ("OMNet++");
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž ("āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĻā§āĻ°āĻ¤ā§āĻŦ-āĻĒāĻ°ā§āĻā§āĻˇāĻž");
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻļāĻ˛ ("āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĄāĻŋāĻĢāĻ˛ā§āĻ");
āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ°āĻžāĻ¨āĻāĻāĻĄāĻŋ;
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨ cmd;
cmd.AddValue("āĻĻā§āĻ°āĻ¤ā§āĻŦ", "āĻ¨ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻĻā§āĻ°āĻ¤ā§āĻŦ (āĻŽāĻŋāĻāĻžāĻ°ā§)āĨ¤", āĻĻā§āĻ°āĻ¤ā§āĻŦ);
cmd.AddValue("āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ", "āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻāĨ¤", āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ);
cmd.AddValue("āĻĒāĻ°ā§āĻā§āĻˇāĻž", "āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĨ¤", āĻĒāĻ°ā§āĻā§āĻˇāĻž);
cmd.AddValue("āĻā§āĻļāĻ˛", "āĻā§āĻļāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĨ¤", āĻā§āĻļāĻ˛);
cmd.AddValue("āĻ°āĻžāĻ¨", "āĻ°āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĨ¤", runID);
cmd.Parse (argc, argv);
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨ā§āĻĄ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž ns3::NodeContainer, ns3::āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°, āĻāĻŦāĻ
ns3::InternetStackHelper.
āĻ¨ā§āĻĄāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¨ā§āĻĄ;
āĻ¨ā§āĻĄāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨(ā§¨ā§Ļā§§ā§§);
āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ;
wifi.SetMac("ns3::AdhocWifiMac");
wifi.SetPhy("ns3::WifiPhy");
NetDeviceContainer nodeDevices = wifi.Install(nodes);
InternetStackHelper āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ;
internet.Install(nodes);
Ipv4AddressHelper ipAddrs;
ipAddrs.SetBase("192.168.0.0", "255.255.255.0");
ipAddrs. Assign(nodeDevices);
¡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨ā§āĻĄā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž ns3::āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ āĻšā§āĻ˛ā§āĻĒāĻžāĻ°. āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¨ā§āĻĄ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻā§
āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻ¨āĻĄāĻŧāĻžāĻāĻĄāĻŧāĻž āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĻā§āĻ°āĻ¤ā§āĻŦāĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§
āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ; āĻāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻžāĻ¨ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns3::ListPositionAllocator, āĻ¯āĻž āĻāĻāĻā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤
āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž;
Ptr positionAlloc =
āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ();
positionAlloc->āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨(āĻā§āĻā§āĻāĻ°(0.0, 0.0, 0.0));
positionAlloc->āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨(āĻā§āĻā§āĻāĻ°(0.0, āĻĻā§āĻ°āĻ¤ā§āĻŦ, 0.0));
mobility.SetPositionAllocator(positionAlloc);
āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž.āĻāĻ¨āĻ¸ā§āĻāĻ˛(āĻ¨ā§āĻĄ);
¡ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¸āĻŋāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĨ¤ āĻŽāĻā§āĻĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ āĻŦāĻā§āĻā§āĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ src/test/test02-apps.(cc|h). āĻāĻāĻā§āĻ˛ā§
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻāĻ°āĻŖ āĻāĻā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻā§ āĻ¤āĻžāĻ°āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸ā§āĻ āĻāĻ¨ā§āĻ¯
ns3::āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯-āĻāĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻ¸ā§āĻ āĻ˛āĻžāĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨
āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯, āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ WiFi āĻāĻ° āĻāĻžāĻ°āĻŖā§ āĻŦā§āĻ°āĻĄāĻāĻžāĻ¸ā§āĻ āĻāĻŦāĻ āĻāĻāĻ¨āĻŋāĻāĻžāĻ¸ā§āĻ āĻĢā§āĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻāĻŦāĻ MAC āĻ°āĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ āĻĒāĻ˛āĻŋāĻ¸āĻŋāĨ¤
Ptr āĻ ā§āĻ¯āĻžāĻĒāĻ¸ā§āĻ°ā§āĻ¸ = āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻ::GetNode(ā§¨ā§Ļā§§ā§§);
Ptr āĻĒā§āĻ°ā§āĻ°āĻ = CreateObject ();
appSource->AddApplication(āĻĒā§āĻ°ā§āĻ°āĻ);
āĻĒā§āĻ°ā§āĻ°āĻ->āĻļā§āĻ°ā§(āĻ¸ā§āĻā§āĻ¨ā§āĻĄ(1));
Ptr appSink = āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻ::GetNode(ā§¨ā§Ļā§§ā§§);
Ptr āĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§ = CreateObject ();
appSink->AddApplication(āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°);
āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°->āĻ¸ā§āĻāĻžāĻ°ā§āĻ(āĻ¸ā§āĻā§āĻ¨ā§āĻĄ(0));
// āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°:: āĻ¸ā§āĻ("/āĻ¨ā§āĻĄāĻ˛āĻŋāĻ¸ā§āĻ/*/āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻ˛āĻŋāĻ¸ā§āĻ/*/$āĻĒā§āĻ°ā§āĻ°āĻ/āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯",
// Ipv4AddressValue("192.168.0.2"));
¡ āĻ¸āĻāĻā§āĻšā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻŽā§āĻ˛āĻŋāĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻāĻŋ
ns3::āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ°āĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ°āĻžāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĨā§āĻā§
āĻ¯āĻž āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ° āĻāĻ¸āĻ˛ā§ āĻĄā§āĻāĻž āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§,
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¤āĻĨā§āĻ¯ā§ ''āĻĒāĻ°ā§āĻā§āĻˇāĻž'', ''āĻā§āĻļāĻ˛'', ''āĻāĻ¨āĻĒā§āĻ'' āĻāĻŦāĻ
''āĻ°āĻžāĻ¨''āĨ¤ āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¸āĻšāĻā§āĻ āĻā§āĻˇā§āĻ ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
¡ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻ˛ āĻ¸ā§āĻ āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ¯āĻžāĻ° āĻāĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻ¸āĻĻāĻ¸ā§āĻ¯āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻŋ WiFi-āĻ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ āĻĻā§āĻ°āĻ¤ā§āĻŦāĨ¤
āĻā§āĻļāĻ˛ āĻšāĻ˛ āĻāĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻā§āĻĄ āĻŦāĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§
āĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ°, āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻšāĻŦā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻŦāĻŋāĻ āĻ¤āĻĻāĻ¨ā§āĻ¤ āĻāĻ°āĻž
āĻšāĻžāĻ°, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻļāĻ˛ āĻšāĻŦā§āĨ¤
¡ āĻāĻ¨āĻĒā§āĻ āĻšāĻ˛ āĻāĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻŦāĻŋāĻļā§āĻˇ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻž āĻ¸āĻšāĻāĻāĻžāĻŦā§
āĻĻā§āĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻ°āĻ¤ā§āĻŦāĨ¤
¡ āĻ°āĻžāĻ¨āĻāĻāĻĄāĻŋ āĻāĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋāĻ° āĻ¤āĻĨā§āĻ¯ āĻā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻ°āĻžāĻ¨ āĻāĻāĻĄāĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ (āĻĻā§āĻ°ā§āĻŦāĻ˛) āĻ°āĻžāĻ¨ āĻāĻāĻĄāĻŋāĨ¤
āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻ āĻāĻžāĻ° āĻā§āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ°ā§ āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§. āĻ¤āĻžāĻ°āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻ¤ā§ ns3::Data Collector::AddMetadata() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻĄā§āĻāĻž;
data.DescribeRun(āĻĒāĻ°ā§āĻā§āĻˇāĻž, āĻā§āĻļāĻ˛, āĻāĻ¨āĻĒā§āĻ, āĻ°āĻžāĻ¨āĻāĻāĻĄāĻŋ);
āĻĄā§āĻāĻžāĨ¤āĻŽā§āĻāĻžāĻĄāĻžāĻāĻž āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨("āĻ˛ā§āĻāĻ", "āĻ¤āĻāĻā§āĻĒā§āĻ¨āĻž");
āĻĒā§āĻ°āĻā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻāĻŖāĻ¨āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns3::āĻĄā§āĻāĻž āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ° āĻŦāĻ¸ā§āĻ¤ā§, āĻ¯āĻž
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨āĨ¤ āĻāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸āĻāĻ¯ā§āĻā§āĻ¤
āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻŋāĻ āĻŦāĻž āĻ¨āĻŽā§āĻ¨āĻž āĻā§āĻĄ, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ ns3::āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻ¤āĻžāĻ āĻ¤āĻžāĻ°āĻž āĻāĻ°āĻŦā§
āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻŦā§. āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ ns-3 āĻā§āĻ°ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻāĻ°ā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°ā§āĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻž
āĻā§āĻĄ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ MAC āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻĨāĻžāĻā§
āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¨ā§āĻĄāĨ¤
Ptr totalRx = CreateObject ();
totalRx->SetKey("wifi-rx-frames");
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°::āĻāĻžāĻ¨ā§āĻā§āĻ("/NodeList/1/DeviceList/*/$ns3::WifiNetDevice/Rx",
MakeCallback(&PacketCounterCalculator::FrameUpdate, totalRx));
data.AddDataCalculator(totalRx);
āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ˛ā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻ¸āĻŋāĻā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
Ptr > appRx = CreateObject >();
appRx->SetKey("āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°-āĻāĻ°āĻāĻā§āĻ¸-āĻĒā§āĻ¯āĻžāĻā§āĻ");
āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°->āĻ¸ā§āĻ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°(āĻ ā§āĻ¯āĻžāĻĒāĻāĻ°āĻāĻā§āĻ¸);
data.AddDataCalculator(appRx);
āĻāĻŖāĻ¨āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻŋāĻā§āĻā§āĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻā§āĻĄāĻāĻŋ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°ā§
āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻāĻĒāĻĄā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
m_calc->āĻāĻĒāĻĄā§āĻ();
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻ¤ā§ āĻāĻĻāĻŋāĻŽ āĻāĻāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ°āĻ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§
āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ° āĻ¯ā§āĻŽāĻ¨ ns3::āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ° āĻāĻŦāĻ āĻ¯āĻžāĻ°āĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻŦāĻ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻāĻŋāĻ¯ā§āĻāĻŋāĻ¤
āĻŦāĻžāĻ° āĻāĻŋāĻ¤āĻ°ā§ src/test/test02-apps.(cc|h) āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻžāĻ¸ā§āĻāĻŽ āĻā§āĻ¯āĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻˇ āĻĨā§āĻā§ āĻļā§āĻˇ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§, āĻāĻāĻāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻŋāĻ
ns3::TimeMinMaxAvgTotalCalculator āĻĄā§āĻāĻž āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻāĻ°āĨ¤
¡ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§, āĻ¯āĻž āĻāĻāĻŦāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻā§āĻŦ āĻ¸ā§āĻāĻžāĨ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ°āĻžāĻ¨();
¡ āĻšāĻ¯āĻŧ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ OMNet++ or SQLite āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻāĻāĻĒā§āĻāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋ
āĻāĻāĻž āĻāĻ° a ns3::āĻĄā§āĻāĻžāĻāĻāĻāĻĒā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°
āĻāĻ° āĻĨā§āĻā§ āĻāĻāĻāĻĒā§āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
ns3::āĻĄā§āĻāĻž āĻāĻžāĻ˛ā§āĻā§āĻāĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯āĻž āĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž.
Ptr āĻāĻāĻāĻĒā§āĻ
āĻ¯āĻĻāĻŋ (āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ == "OMNet++") {
NS_LOG_INFO("OMNet++ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§āĻĄ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤");
output = CreateObject ();
} āĻ āĻ¨ā§āĻ¯ {
# ifdef STAT_USE_DB
NS_LOG_INFO("SQLite āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻĄ āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤");
output = CreateObject ();
# āĻ¯āĻĻāĻŋ āĻļā§āĻˇ
}
āĻāĻāĻāĻĒā§āĻ->āĻāĻāĻāĻĒā§āĻ(āĻĄā§āĻāĻž);
¡ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻā§āĻ¨ā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻā§āĻ¤ āĻāĻ°āĻžāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļā§āĻˇā§ āĻāĻ¸āĻž āĻāĻāĻŋāĻ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨āĨ¤
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻ§ā§āĻŦāĻāĻ¸();
āĻ˛āĻāĻŋāĻ
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨, āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻŋ āĻāĻ°āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§, āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
āĻĻā§āĻ¯ NS_LOG āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛āĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŦ āĻĨā§āĻā§ āĻĒā§āĻ°āĻā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§
āĻ¤āĻŋāĻ¨.
$export NS_LOG=WiFiDistanceExperiment:WiFiDistanceApps
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻāĻŋāĻā§ āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻ§ā§āĻ° āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ¨āĻŽā§āĻ¨āĻž āĻāĻāĻāĻĒā§āĻ
āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ OMNet++ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ āĻ¯ā§āĻŽāĻ¨
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĨā§āĻā§ data.sca.
āĻ°āĻžāĻ¨ āĻ°āĻžāĻ¨-1212239121
attr āĻĒāĻ°ā§āĻā§āĻˇāĻž "āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĻā§āĻ°āĻ¤ā§āĻŦ-āĻĒāĻ°ā§āĻā§āĻˇāĻž"
attr āĻā§āĻļāĻ˛ "āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĄāĻŋāĻĢāĻ˛ā§āĻ"
attr āĻāĻ¨āĻĒā§āĻ "50"
attr āĻŦāĻ°ā§āĻŖāĻ¨āĻž ""
attr "āĻ˛ā§āĻāĻ" "tjkopena"
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻāĻŋāĻāĻā§āĻ¸-āĻĢā§āĻ°ā§āĻŽ āĻ¸āĻāĻā§āĻ¯āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻāĻ°āĻāĻā§āĻ¸-āĻĢā§āĻ°ā§āĻŽ āĻāĻŖāĻ¨āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻ¸ā§āĻ¨ā§āĻĄāĻžāĻ°-āĻāĻŋāĻāĻā§āĻ¸-āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ°-āĻāĻ°āĻāĻā§āĻ¸-āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° tx-pkt-āĻāĻāĻžāĻ° āĻāĻŖāĻ¨āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° tx-pkt-āĻāĻāĻžāĻ° āĻŽā§āĻ 1920
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° tx-pkt-āĻāĻāĻžāĻ° āĻāĻĄāĻŧ 64
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° tx-pkt-āĻāĻāĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ 64
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° tx-pkt-āĻāĻāĻžāĻ° āĻŽāĻŋāĻ¨ 64
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻāĻŖāĻ¨āĻž 30
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻŽā§āĻ 5884980ns
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻāĻĄāĻŧ 196166ns
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ 196166ns
āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻŽāĻŋāĻ¨āĻŋāĻ 196166ns
āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ˛āĻŋāĻĒāĻŋ
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨āĻĒā§āĻ (āĻĻā§āĻ°āĻ¤ā§āĻŦ) āĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻžāĻļ
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
example/stats/wifi-example-db.sh. āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĨā§āĻā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖ/āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨/
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĻā§āĻ°āĻ¤ā§āĻŦ āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻāĻā§āĻ°āĻš SQLite
āĻ¤āĻĨā§āĻ¯āĻļāĻžāĻ˛āĻž. āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻ°āĻ¤ā§āĻŦā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻāĻŦāĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž. āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§ āĻāĻ˛āĻ¤ā§ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻ āĻĄāĻāĻ¨ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ
āĻŽā§āĻļāĻŋāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤
#!/ āĻŦāĻŋāĻ¨ / SH
DISTANCES="25 50 75 100 125 145 147 150 152 155 157 160 162 165 167 170 172 175 177 180"
āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛āĻ¸="1 2 3 4 5"
āĻāĻā§ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¯āĻĻāĻŋ [-e data.db]
āĻ¤āĻžāĻ°āĻĒāĻ°
echo Kill data.db?
ANS āĻĒāĻĄāĻŧā§āĻ¨
āĻ¯āĻĻāĻŋ [ "$ANS" = "āĻšā§āĻ¯āĻžāĻ" -o "$ANS" = "y" ]
āĻ¤āĻžāĻ°āĻĒāĻ°
āĻāĻā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻā§āĻā§
rm data.db
fi
fi
$TRIALS-āĻ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯
do
āĻĻā§āĻ°āĻ¤ā§āĻŦā§āĻ° āĻāĻ¨ā§āĻ¯ $DISTANCES
do
āĻāĻā§ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ $āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛, āĻĻā§āĻ°āĻ¤ā§āĻŦ $āĻĻā§āĻ°āĻ¤ā§āĻŦ
./bin/test02 --format=db --distance=$distance --run=run-$distance-$trial
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻŦāĻ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻāĻŦāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ SQL āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ SQLite āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĨ¤ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻāĻĄāĻŧ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻˇāĻ¤āĻŋāĻ° āĻšāĻŋāĻ¸āĻžāĻŦ āĻāĻ°ā§
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻ°āĻ¤ā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻāĨ¤ āĻāĻāĻž āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻžāĻāĻ¨ā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻ¨āĻž
āĻā§āĻļāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻĨā§āĻ¯ āĻāĻŋāĻā§ āĻ¸āĻšāĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻŦāĻ āĻ¤āĻžāĻ āĻāĻ°ā§āĻ¨ āĻ¸āĻāĻā§āĻšā§āĻ¤ āĻĄā§āĻāĻž āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ GNUPlot-āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤
CMD="select exp.input,avg(100-((rx.value*100)/tx.value)) \
Singletons rx, Singleton tx, Experiments exp \ āĻĨā§āĻā§
āĻ¯ā§āĻāĻžāĻ¨ā§ rx.run = tx.run AND \
rx.run = exp.run āĻāĻŦāĻ \
rx.name='receiver-rx-packets' āĻāĻŦāĻ \
tx.name='sender-tx-packets' \
exp.input āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻ°ā§āĻĒ
abs(exp.input) ASC āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°ā§āĻ¨;"
sqlite3 -noheader data.db "$CMD" > wifi-default.data
sed -i "s/|//" wifi-default.data
gnuplot wifi-example.gnuplot
GNUPlot āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻā§ example/stats/wifi-example.gnuplot āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻŦāĻ āĻā§āĻ°āĻžāĻĢā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĨ¤
āĻ¸ā§āĻ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻĒā§āĻ¸ā§āĻāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ¤āĻŋ āĻāĻ¨ā§āĻ¨āĻ¤ lw 2 "Helvetica" 14
āĻ¸ā§āĻ āĻāĻāĻžāĻ° 1.0, 0.66
#------------------------------------------------ ------
"wifi-default.eps" āĻ¸ā§āĻ āĻāĻāĻ
# āĻ¸ā§āĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ "āĻĻā§āĻ°āĻ¤ā§āĻŦā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛āĻ¸"
x āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ "āĻĻā§āĻ°āĻ¤ā§āĻŦ (āĻŽāĻŋ) --- āĻĒā§āĻ°āĻ¤āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ 5 āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻāĻĄāĻŧ"
āĻ¸ā§āĻ x āĻ°ā§āĻā§āĻ [0:200]
āĻāĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ "% āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛āĻ¸"
āĻ¸ā§āĻ āĻāĻ°ā§āĻā§āĻ [0:110]
āĻ˛āĻžāĻāĻ¨ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ "āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ¸" āĻ¸āĻš āĻĒā§āĻ˛āĻ "wifi-default.data"
āĻļā§āĻˇ āĻĢāĻ˛
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻā§āĻ°āĻžāĻĢāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻā§āĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¨āĻž
āĻ āĻāĻ¤ā§āĻ¯āĻž āĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤āĻ¤āĻž āĻāĻŋāĻā§ āĻāĻ¸ā§āĻĨāĻž āĻ§āĻžāĻ° āĻĻā§āĻ¯āĻŧ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž āĻāĻ°āĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ, āĻāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¤āĻĻāĻ¨ā§āĻ¤āĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻāĻžāĻ āĻžāĻŽā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¸āĻĢāĻ˛āĻ¤āĻžāĻ° ! [āĻāĻŦāĻŋ]
āĻĒā§āĻ°āĻā§āĻ¤ āĻ¸āĻŽāĻ¯āĻŧ
ns-3 āĻā§āĻ¸ā§āĻāĻŦā§āĻĄ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻāĻ¤/āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛-āĻāĻžāĻāĻŽ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ°
āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻĄāĻŧāĻŋāĻāĻŋ āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋ āĻ
āĻāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨: āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§āĨ¤
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ°ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻ˛ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻĄāĻŧāĻŋāĻ° āĻ āĻā§āĻ°āĻāĻ¤āĻŋ āĻāĻāĻžāĻ¨ā§
āĻāĻŋāĻā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¸ āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§ āĻāĻāĻ¤ā§. āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻž
āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻāĻžāĻāĻŽ āĻŦā§āĻ¸ (āĻāĻ¯āĻŧāĻžāĻ˛ āĻāĻĄāĻŧāĻŋ), āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻāĻŽ āĻ¤āĻžā§āĻā§āĻˇāĻŖāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻā§āĻĄ āĻĨā§āĻā§ āĻ˛āĻžāĻĢ āĻĻā§āĻ¯āĻŧ
āĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤
āĻāĻāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻ¨āĻ¨-āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ (āĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ ns-3), āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ āĻā§āĻ°āĻ¸āĻ° āĻšāĻ¯āĻŧ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻā§āĻ¨ā§āĻā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻā§āĻ¨ā§āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻ¯āĻŧ
āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§, āĻāĻāĻ°āĻŖāĻāĻŋ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ°ā§āĻĒ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄā§āĻ˛ (āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧ), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§
āĻāĻāĻ¨āĻž, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻĄāĻŧāĻŋ āĻ°āĻžāĻāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§
āĻāĻĄāĻŧāĻŋ
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻļā§āĻˇ āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ,
āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻĒāĻ°ā§āĻ°āĻāĻž āĻšāĻ˛ā§
āĻāĻā§āĻ¨ā§āĻāĻāĻŋ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¸ā§āĻ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽā§ āĻ¨āĻž āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻā§āĻŽāĻžāĻ¯āĻŧ
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš āĻāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻžāĻ°āĻŖā§,
āĻ¯ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻ˛ āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧā§ āĻāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĻā§āĻ āĻāĻā§ ns-3 āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯āĻž āĻāĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻĻā§āĻ¯
āĻĒā§āĻ°āĻĨāĻŽ āĻšāĻ¯āĻŧ ns3::RealTimeSimulatorImpl::SynchronizationMode. āĻĻā§āĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻāĻŦ
āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻ¯āĻŧ āĻ¸ā§āĻ°āĻž āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž (āĻĄāĻŋāĻĢāĻ˛ā§āĻ) āĻŦāĻž āĻšāĻžāĻ°ā§āĻĄāĻ˛āĻŋāĻŽāĻŋāĻ. "BestEffort" āĻŽā§āĻĄā§,
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽā§ āĻ§āĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻāĻŋ a āĻ āĻĒā§āĻāĻāĻžāĻ¯āĻŧ
āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻāĻāĻŋ (āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ) āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¤āĻ°ā§
BestEffort āĻŽā§āĻĄ, āĻ¤āĻžāĻ°āĻĒāĻ°, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ
āĻĒā§āĻ°āĻžāĻā§āĻ° āĻāĻĄāĻŧāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻ āĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻ˛ā§āĻĒ "āĻšāĻžāĻ°ā§āĻĄāĻ˛āĻŋāĻŽāĻŋāĻ" āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻāĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°ā§ āĻĻā§āĻŦā§ āĻ¯āĻĻāĻŋ
āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻĨā§āĻ°ā§āĻļāĻšā§āĻ˛ā§āĻĄ āĻ āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻ˛ ns3::RealTimeSimulatorImpl::Hard Limit
āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ 0.1 āĻ¸ā§āĻā§āĻ¨ā§āĻĄāĨ¤
āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻĄ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻž āĻāĻāĻāĻŋ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻŽāĻžāĻ¯āĻŧāĻŋāĻ¤
āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ āĻŽā§āĻĄāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ ns-3 āĻŦā§āĻā§āĻˇ
āĻāĻāĻž āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¯āĻĻāĻŋ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¨ā§āĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻž āĻšāĻ¯āĻŧ āĻ¨āĻž (āĻ¯ā§āĻŽāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ
āĻĄā§āĻā§ āĻāĻ¨ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°::āĻāĻāĻ¨() āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻā§āĻ° āĻāĻĄāĻŧāĻŋāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ, āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¨āĻ¯āĻŧ
āĻāĻā§āĻ¨ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§), āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ ns-developers āĻŽā§āĻāĻ˛āĻŋāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻŋāĻ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ¸ā§āĻāĻžāĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻļā§āĻ§ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻžāĻāĻĒ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°, āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
GlobalValue::Bind ("āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻžāĻāĻĒ",
StringValue ("ns3::RealtimeSimulatorImpl"));
āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ/realtime/realtime-udp-echo.cc āĻ¯ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻā§
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻāĻāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨:
$ ./waf --run āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ-āĻāĻĄāĻŋāĻĒāĻŋ-āĻāĻā§
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻŦāĻž āĻāĻ ā§āĻ° āĻ¸ā§āĻŽāĻž āĻ¨ā§āĻ¤āĻŋ āĻĢā§āĻ¯āĻžāĻļāĻ¨ā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§ˇ
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĻā§āĻŦāĻžāĻ°āĻž.
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§:
¡ src/core/model/realtime-simulator-implā§ˇcc,h}
¡ src/core/model/wall-clock-synchronizerā§ˇcc,h}
āĻāĻāĻāĻŋ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽ āĻā§āĻ°āĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻžāĻāĻŽ āĻāĻžāĻŽā§āĻĒ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ
āĻā§āĻŽ- āĻāĻŦāĻ āĻŦā§āĻ¯āĻ¸ā§āĻ¤- āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻā§āĻŽ-āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž (āĻĨā§āĻ°ā§āĻĄ) āĻĢāĻ˛āĻ¨ āĻāĻžāĻ°āĻŖ
āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĨ¤ āĻ¯āĻĻāĻŋāĻ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ā§, āĻāĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ OS-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋāĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¤āĻ°ā§
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸, āĻā§āĻ°āĻžāĻ¨ā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŋāĻĢāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻšāĻŋāĻĻāĻž (āĻĻāĻļ āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§), āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¤ā§āĻ¤āĻžāĻāĻžāĻ° āĻ¨āĻŋāĻā§ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻāĻ¨ā§āĻ¯ āĻā§āĻŽ
āĻāĻŋāĻĢāĻŋāĻ° āĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻžāĻā§āĻ°āĻ¤ āĻšāĻ¯āĻŧ
āĻāĻŋāĻĢāĻŋāĻ¸ āĻā§āĻā§ āĻā§āĻā§āĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§āĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻ¯āĻŧ
āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĨā§āĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻā§āĻ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻ¸ā§āĻ¤-āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ āĻŦāĻžāĻāĻŋ āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯
āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻĨā§āĻ°ā§āĻĄāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ˛ā§āĻĒ āĻā§āĻ°āĻžāĻ¸āĻāĻžāĻ°ā§ āĻāĻā§āĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨāĻžāĻā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĨ¤ āĻā§āĻŽ- āĻāĻŦāĻ āĻŦā§āĻ¯āĻ¸ā§āĻ¤-āĻ āĻĒā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§āĻ° āĻĒāĻ°ā§, āĻ āĻ¤āĻŋāĻŦāĻžāĻšāĻŋāĻ¤ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ
(āĻāĻ¯āĻŧāĻžāĻ˛) āĻāĻĄāĻŧāĻŋāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŽāĻ¤ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤
āĻāĻāĻŋāĻ¯āĻŧā§āĨ¤
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§
āĻāĻĒāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¯āĻŧā§āĻā§ ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻ¯ā§āĻŽāĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ
āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸-āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ, āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ, āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸, āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĨ¤
āĻāĻ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻ āĻāĻžāĻ āĻāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻĻāĻžāĻ¨āĻžāĻĻāĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦā§āĻļ āĻĻā§āĻ°ā§āĻ āĻšāĻŦā§
āĻāĻŦāĻ āĻā§āĻĄ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻžāĻ¨ā§āĻ¤āĻŋāĻāĻ°āĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ "āĻšā§āĻ˛ā§āĻĒāĻžāĻ° API" āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻŽā§āĻ˛ā§ ns-3 API āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻĄāĻŧā§āĻā§āĻ¨ ns-3 āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛, āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻŦā§
āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API āĻāĻ° āĻ¸āĻžāĻĨā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻŽāĻ¨ API āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻĒāĻŋāĻāĻ-āĻāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻĒāĻ°ā§āĻ¤ā§āĻ¯
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° APIāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ā§ ns-3, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻžāĻŽāĻ¨ā§ āĻāĻŦāĻ āĻĒāĻŋāĻāĻ¨ā§ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻŦā§
āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻāĻ APIāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§āĨ¤
āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API āĻāĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§:
1. āĻŦāĻžāĻāĻŋ src / āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API-āĻāĻ° āĻāĻĒāĻ° āĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¨ā§āĻ; āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° API āĻāĻ āĻā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
2. āĻāĻ¨ā§āĻā§āĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋ: āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻˇā§āĻ ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§
āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻŦāĻž āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§.
3. āĻšā§āĻ˛ā§āĻĒāĻžāĻ° API āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ¨āĻ¯āĻŧ; āĻāĻāĻŋ āĻā§āĻĄ āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻ¤āĻžāĻ,
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻ āĻ¯ā§āĻŽāĻ¨ āĻĒāĻ˛āĻŋāĻŽāĻ°āĻĢāĻŋāĻāĻŽ āĻāĻŦāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻ¯āĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§ āĻā§āĻĄ āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ˛āĻžāĻĻāĻž CsmaNetDevice āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§ āĻāĻā§ āĻāĻŦāĻ
PointToPointNetDevice āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ NetDevice āĻŦā§āĻ¸ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻŦāĻ°ā§āĻ.
4. āĻšā§āĻ˛ā§āĻĒāĻžāĻ° API āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ-āĻ ā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻĄ (āĻŦāĻ¨āĻžāĻŽ āĻšāĻŋāĻĒ-āĻ ā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻĄ) āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻŋāĻā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ, ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻĒāĻŋāĻāĻŋāĻāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ; āĻ¤āĻžāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ-āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¯ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻāĻĒāĻŋāĻāĻ āĻāĻ¸āĻ˛ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻŦāĻ āĻĒāĻĄāĻŧāĻž āĻ¸āĻšāĻ, āĻāĻžāĻĄāĻŧāĻž
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻļāĻā§āĻ¤āĻŋ āĻā§āĻĄāĻŧā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĨ¤ āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻŦāĻžāĻāĻŋ āĻāĻŋāĻā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻ¸āĻšāĻžāĻ¯āĻŧāĻ API āĻāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻ¨āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
āĻŽā§āĻāĻŋāĻ āĻšāĻ āĻžā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻā§āĻāĻžāĻ¨āĻĒā§āĻ˛āĻ āĻļā§āĻ°ā§āĻŖā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 2āĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ ns-3 āĻāĻŦāĻ gnuplot (-
http://www.gnuplot.info):
1. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ns-3āĻāĻ° Gnuplot āĻā§āĻ˛āĻžāĻ¸āĨ¤
2. āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ gnuplot āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ns-3.
āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ 1 āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ ns-3āĻāĻ° Gnuplot
āĻā§āĻ˛āĻžāĻ¸ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ 2 āĻ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ° āĻ āĻ§ā§āĻ¨ā§ "āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ" āĻāĻĒāĻ§āĻžāĻ°āĻžāĻāĻŋ āĻĻā§āĻā§āĻ¨
"āĻā§āĻ°ā§āĻ¸āĻŋāĻ" āĻŦāĻŋāĻāĻžāĻā§ ns-3 āĻ āĻāĻŋāĻāĻžāĻŦāĻāĻ¸āĻāĻŦāĻāĻ§ā§āĻ¯āĻŧ.
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻšāĻ āĻžā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻā§āĻāĻžāĻ¨āĻĒā§āĻ˛āĻ āĻļā§āĻ°ā§āĻŖā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ ns-3āĻāĻ° Gnuplot āĻā§āĻ˛āĻžāĻ¸:
1. āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ Gnuplot āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
2. āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
3. gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ gnuplot āĻā§ āĻāĻ˛ āĻāĻ°ā§āĻ¨āĨ¤
4. āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻŋāĻāĻ¯āĻŧāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤
āĻ§āĻžāĻĒ 1-āĻ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ˛āĻ āĻĨā§āĻā§ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤
An āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¸āĻŽā§āĻš āĻĻā§āĻ¯ āĻā§āĻāĻžāĻ¨āĻĒā§āĻ˛āĻ āĻļā§āĻ°ā§āĻŖā§
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-3āĻāĻ° Gnuplot āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§:
src/stats/examples/gnuplot-example.cc
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$ ./waf āĻļā§āĻ˛
$ cd build/debug/src/stats/examples
$ ./gnuplot-āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤:
āĻĒā§āĻ˛āĻ-2d.plt
plot-2d-with-error-bars.plt
āĻĒā§āĻ˛āĻ-3d.plt
āĻāĻ gnuplot āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$gnuplot plot-2d.plt
$gnuplot plot-2d-with-error-bars.plt
$gnuplot plot-3d.plt
āĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§
āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤:
āĻĒā§āĻ˛āĻ-2d.png
plot-2d-with-error-bars.png
āĻĒā§āĻ˛āĻ-3d.png
āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻŋāĻāĻ¯āĻŧāĻžāĻ°ā§ āĻāĻ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻŋāĻŽā§āĻĒ āĻĨāĻžāĻā§
āĻāĻĒāĻ¨āĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$gimp plot-2d.png
$gimp plot-2d-with-error-bars.png
$gimp plot-3d.png
An āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋāĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ 2 āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ 2-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻĒā§āĻ˛āĻ
[āĻāĻŦāĻŋ]
gnuplot-example.cc āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileNameWithNoExtension = "āĻĒā§āĻ˛āĻ-2d";
string graphicsFileName = fileNameWithNoExtension + ".png";
string plotFileName = fileNameWithNoExtension + ".plt";
string plotTitle = "2-āĻĄāĻŋ āĻĒā§āĻ˛āĻ";
string dataTitle = "2-D āĻĄā§āĻāĻž";
// āĻĒā§āĻ˛āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
Gnuplot āĻĒā§āĻ˛āĻ (āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ);
plot.SetTitle (plotTitle);
// āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻŋ āĻ¯āĻāĻ¨ āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
// Gnuplot āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻāĻŋ PNG āĻĢāĻžāĻāĻ˛ āĻšā§āĻ¨āĨ¤
plot.SetTerminal ("png");
// āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.SetLegend ("X āĻŽāĻžāĻ¨", "Y āĻŽāĻžāĻ¨");
// x āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AppendExtra ("āĻ¸ā§āĻ xrange [-6:+6]");
// āĻĄā§āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
// āĻ¸āĻāĻ¯ā§āĻ āĻ˛āĻžāĻāĻ¨ āĻ¸āĻš āĻĒā§āĻ˛āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
Gnuplot2dDataset āĻĄā§āĻāĻžāĻ¸ā§āĻ;
dataset.SetTitle (dataTitle);
dataset.SetStyle (Gnuplot2dDataset::LINES_POINTS);
āĻĄāĻŦāĻ˛ āĻāĻā§āĻ¸;
āĻĄāĻŦāĻ˛ y;
// 2-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (x = -5.0; x <= +5.0; x += 1.0)
{
// 2-āĻĄāĻŋ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2/XNUMX/XNUMX
// y = xāĨ¤
//
y = x * x;
// āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (x, y);
}
// āĻĒā§āĻ˛āĻā§ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AddDataset (āĻĄā§āĻāĻžāĻ¸ā§āĻ);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛ā§āĻ¨āĨ¤
āĻ āĻĢāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ˛āĻāĻĢāĻžāĻāĻ˛ (plotFileName.c_str());
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
plot.GenerateOutput (plotFile);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
plotFile.close ();
An āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋāĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ 2 āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¸āĻā§āĻā§ āĻā§āĻ˛ āĻĒāĻžāĻ¨āĻļāĻžāĻ˛āĻž
x āĻāĻŦāĻ y āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ° āĻ¸āĻš āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ 2-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻĒā§āĻ˛āĻ
[āĻāĻŦāĻŋ]
gnuplot-example.cc āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileNameWithNoExtension = "plot-2d-with-error-bars";
string graphicsFileName = fileNameWithNoExtension + ".png";
string plotFileName = fileNameWithNoExtension + ".plt";
string plotTitle = "āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ° āĻ¸āĻš 2-āĻĄāĻŋ āĻĒā§āĻ˛āĻ";
string dataTitle = "āĻāĻ°āĻ° āĻŦāĻžāĻ° āĻ¸āĻš 2-D āĻĄā§āĻāĻž";
// āĻĒā§āĻ˛āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
Gnuplot āĻĒā§āĻ˛āĻ (āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ);
plot.SetTitle (plotTitle);
// āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻŋ āĻ¯āĻāĻ¨ āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
// Gnuplot āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻāĻŋ PNG āĻĢāĻžāĻāĻ˛ āĻšā§āĻ¨āĨ¤
plot.SetTerminal ("png");
// āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.SetLegend ("X āĻŽāĻžāĻ¨", "Y āĻŽāĻžāĻ¨");
// x āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AppendExtra ("āĻ¸ā§āĻ xrange [-6:+6]");
// āĻĄā§āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
// āĻā§āĻ¨ āĻ¸āĻāĻ¯ā§āĻ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻĄāĻŧāĻž āĻĒā§āĻ˛āĻ āĻāĻ°āĻž.
Gnuplot2dDataset āĻĄā§āĻāĻžāĻ¸ā§āĻ;
dataset.SetTitle (dataTitle);
dataset.SetStyle (Gnuplot2dDataset::POINTS);
// āĻĄā§āĻāĻžāĻ¸ā§āĻā§āĻ° x āĻāĻŦāĻ y āĻāĻāĻ¯āĻŧ āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ° āĻ°āĻžāĻā§āĻ¨āĨ¤
dataset.SetErrorBars (Gnuplot2dDataset::XY);
āĻĄāĻŦāĻ˛ āĻāĻā§āĻ¸;
āĻĄāĻŦāĻ˛ xErrorDelta;
āĻĄāĻŦāĻ˛ y;
āĻĄāĻŦāĻ˛ yErrorDelta;
// 2-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (x = -5.0; x <= +5.0; x += 1.0)
{
// 2-āĻĄāĻŋ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2/XNUMX/XNUMX
// y = xāĨ¤
//
y = x * x;
// x āĻĻāĻŋāĻā§āĻ° āĻ āĻ¨āĻŋāĻļā§āĻāĻ¯āĻŧāĻ¤āĻžāĻā§ āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĻ¨
// y āĻĻāĻŋāĻā§āĻ° āĻ āĻ¨āĻŋāĻļā§āĻāĻ¯āĻŧāĻ¤āĻž āĻāĻāĻāĻŋ āĻ§ā§āĻ°ā§āĻŦāĻ āĻāĻā§āĻ¨āĻžāĻāĻļ āĻšāĻ¤ā§ āĻšāĻŦā§
// y āĻāĻ° āĻŽāĻžāĻ¨āĨ¤
xErrorDelta = 0.25;
yErrorDelta = 0.1 * y;
// x āĻāĻŦāĻ y āĻāĻāĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻ āĻ¨āĻŋāĻļā§āĻāĻ¯āĻŧāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
// āĻ āĻāĻŋāĻŽā§āĻ.
āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (x, y, xErrorDelta, yErrorDelta);
}
// āĻĒā§āĻ˛āĻā§ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AddDataset (āĻĄā§āĻāĻžāĻ¸ā§āĻ);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛ā§āĻ¨āĨ¤
āĻ āĻĢāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ˛āĻāĻĢāĻžāĻāĻ˛ (plotFileName.c_str());
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
plot.GenerateOutput (plotFile);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
plotFile.close ();
An āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋāĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ 3 āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ 3-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻĒā§āĻ˛āĻ
[āĻāĻŦāĻŋ]
gnuplot-example.cc āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
string fileNameWithNoExtension = "āĻĒā§āĻ˛āĻ-3d";
string graphicsFileName = fileNameWithNoExtension + ".png";
string plotFileName = fileNameWithNoExtension + ".plt";
string plotTitle = "3-āĻĄāĻŋ āĻĒā§āĻ˛āĻ";
string dataTitle = "3-D āĻĄā§āĻāĻž";
// āĻĒā§āĻ˛āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
Gnuplot āĻĒā§āĻ˛āĻ (āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ);
plot.SetTitle (plotTitle);
// āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻŋ āĻ¯āĻāĻ¨ āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
// Gnuplot āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻāĻŋ PNG āĻĢāĻžāĻāĻ˛ āĻšā§āĻ¨āĨ¤
plot.SetTerminal ("png");
// āĻĒā§āĻ˛āĻāĻāĻŋāĻā§ x āĻ āĻā§āĻˇā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ 30 āĻĄāĻŋāĻā§āĻ°āĻŋ āĻā§āĻ°āĻžāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻā§āĻ°āĻžāĻ¨
// āĻ¨āĻ¤ā§āĻ¨ z āĻ āĻā§āĻˇā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ 120 āĻĄāĻŋāĻā§āĻ°āĻŋ āĻĒā§āĻ˛āĻāĨ¤
āĻĒā§āĻ˛āĻāĨ¤āĻ ā§āĻ¯āĻžāĻĒā§āĻ¨ā§āĻĄāĻāĻā§āĻ¸āĻā§āĻ°āĻž ("āĻ¸ā§āĻ āĻāĻŋāĻ 30, 120, 1.0, 1.0");
// z-āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ¨ā§āĻ¯ āĻāĻ°ā§āĻ¨ x-āĻ āĻā§āĻˇ āĻāĻŦāĻ y-āĻ āĻā§āĻˇ āĻ¸āĻŽāĻ¤āĻ˛ā§āĨ¤
āĻĒā§āĻ˛āĻāĨ¤āĻ ā§āĻ¯āĻžāĻĒā§āĻ¨ā§āĻĄāĻāĻā§āĻ¸āĻā§āĻ°āĻž ("āĻ¸ā§āĻ āĻāĻŋāĻā§āĻ¸āĻ˛ā§āĻā§āĻ˛ 0");
// āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AppendExtra ("āĻāĻā§āĻ¸ āĻ˛ā§āĻŦā§āĻ˛ 'āĻāĻā§āĻ¸ āĻŽāĻžāĻ¨' āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨");
āĻĒā§āĻ˛āĻāĨ¤āĻ ā§āĻ¯āĻžāĻĒā§āĻ¨ā§āĻĄāĻāĻā§āĻ¸āĻā§āĻ°āĻž ("āĻāĻ˛ā§āĻŦā§āĻ˛ 'āĻāĻ¯āĻŧāĻžāĻ āĻŽāĻžāĻ¨' āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨");
plot.AppendExtra ("āĻ¸ā§āĻ zlabel 'Z Values'");
// x āĻāĻŦāĻ y āĻ āĻā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻā§āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AppendExtra ("āĻ¸ā§āĻ xrange [-5:+5]");
plot.AppendExtra ("āĻ¸ā§āĻ yrange [-5:+5]");
// āĻĄā§āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
// āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻ¯ā§āĻā§āĻ¤āĨ¤
Gnuplot3dDataset āĻĄā§āĻāĻžāĻ¸ā§āĻ;
dataset.SetTitle (dataTitle);
dataset.SetStyle ("āĻ˛āĻžāĻāĻ¨ āĻ¸āĻš");
āĻĄāĻŦāĻ˛ āĻāĻā§āĻ¸;
āĻĄāĻŦāĻ˛ y;
āĻĄāĻŦāĻ˛ z;
// 3-āĻĄāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¨ā§āĻ¯ (x = -5.0; x <= +5.0; x += 1.0)
{
āĻāĻ¨ā§āĻ¯ (y = -5.0; y <= +5.0; y += 1.0)
{
// 3-āĻĄāĻŋ āĻĒā§āĻˇā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
//
// 2 2
// z = x * yāĨ¤
//
z = x * x * y * y;
// āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (x, y, z);
}
// āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ x āĻŽāĻžāĻ¨ā§āĻ° āĻĄā§āĻāĻžāĻ° āĻļā§āĻˇā§ āĻĢāĻžāĻāĻāĻž āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ
// 3-D āĻĒā§āĻˇā§āĻ āĻā§āĻ°āĻŋāĻĄ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĨ¤
dataset.AddEmptyLine ();
}
// āĻĒā§āĻ˛āĻā§ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
plot.AddDataset (āĻĄā§āĻāĻžāĻ¸ā§āĻ);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛ā§āĻ¨āĨ¤
āĻ āĻĢāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻĒā§āĻ˛āĻāĻĢāĻžāĻāĻ˛ (plotFileName.c_str());
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
plot.GenerateOutput (plotFile);
// āĻĒā§āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
plotFile.close ();
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻĨā§āĻā§ āĻāĻžāĻ˛āĻžāĻ¨ ns-3
āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ C++ āĻā§āĻĄ āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ ns-3 āĻĒāĻžāĻāĻĨāĻ¨ āĻĨā§āĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§ ns-3 āĻāĻŦāĻ
āĻāĻāĻāĻŋ C++ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž ns-3 āĻŽāĻĄāĻŋāĻāĻ˛āĨ¤
āĻā§āĻŽāĻŋāĻāĻž
āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ ns-3 āĻĻā§āĻ āĻāĻžāĻāĻ āĻšāĻ¯āĻŧ:
1. āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻā§ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨ (-
http://www.python.org);
2. āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛ (āĻ¯ā§āĻŽāĻ¨ āĻ°āĻžāĻāĻāĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛)āĨ¤
āĻāĻĒāĻžāĻ¤āĻ¤, āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĢā§āĻāĻžāĻ¸ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻā§āĻˇā§āĻ¯, āĻ¤āĻŦā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ
āĻ˛āĻā§āĻˇā§āĻ¯ āĻ āĻŦāĻļā§āĻˇā§ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§. āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ ns-3 āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻā§āĻā§
PyBindGen āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (http://code.google.com/p/pybindgen).
An āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻĨāĻ¨ āĻ˛āĻŋāĻĒāĻŋ āĻ¯ā§ āĻ°āĻžāĻ¨ ns-3
āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻ˛ā§āĻāĻž āĻāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ˛ā§ ns-3, āĻ¯āĻž āĻ˛ā§āĻāĻž āĻāĻā§
C++ āĻāĨ¤ āĻāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ example/tutorial/first.py:
ns.applications āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨
ns.core āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨
ns.internet āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨
ns.network āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨
ns.point_to_point āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§āĻ¨
ns.core.LogComponentEnable("UdpEchoClientApplication", ns.core.LOG_LEVEL_INFO)
ns.core.LogComponentEnable("UdpEchoServerApplication", ns.core.LOG_LEVEL_INFO)
āĻ¨ā§āĻĄ = ns.network.NodeContainer()
āĻ¨ā§āĻĄāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨(2)
pointToPoint = ns.point_to_point.PointToPointHelper()
pointToPoint.SetDeviceAttribute("DataRate", ns.core.StringValue("5Mbps"))
pointToPoint.SetChannelAttribute("āĻŦāĻŋāĻ˛āĻŽā§āĻŦ", ns.core.StringValue("2ms"))
āĻĄāĻŋāĻāĻžāĻāĻ¸ = pointToPoint.Install(āĻ¨ā§āĻĄ)
āĻ¸ā§āĻā§āĻ¯āĻžāĻ = ns.internet.InternetStackHelper()
stack.Install(āĻ¨ā§āĻĄ)
āĻ āĻŋāĻāĻžāĻ¨āĻž = ns.internet.Ipv4AddressHelper()
āĻ āĻŋāĻāĻžāĻ¨āĻž.SetBase(ns.network.Ipv4Address("10.1.1.0"), ns.network.Ipv4Mask("255.255.255.0"))
āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ = āĻ āĻŋāĻāĻžāĻ¨āĻžāĨ¤ āĻŦāĻ°āĻžāĻĻā§āĻĻ (āĻĄāĻŋāĻāĻžāĻāĻ¸);
āĻāĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° = ns.applications.UdpEchoServerHelper(9)
serverApps = echoServer.Install(āĻ¨ā§āĻĄāĨ¤ āĻĒāĻžāĻ¨(1))
serverApps.Start(ns.core.Seconds(1.0))
serverApps.Stop(ns.core.Seconds(10.0))
echoClient = ns.applications.UdpEchoClientHelper(āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĨ¤ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĒāĻžāĻ¨(1), 9)
echoClient.SetAttribute("MaxPackets", ns.core.UintegerValue(1))
echoClient.SetAttribute("Interval", ns.core.TimeValue(ns.core.Seconds (1.0)))
echoClient.SetAttribute("āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸āĻžāĻāĻ", ns.core.UintegerValue(1024))
clientApps = echoClient.Install(āĻ¨ā§āĻĄāĨ¤ āĻĒāĻžāĻ¨(0))
clientApps.Start(ns.core.Seconds(2.0))
clientApps.Stop(ns.core.Seconds(10.0))
ns.core.Simulator.Run()
ns.core.Simulator.Destroy()
āĻāĻ˛āĻŽāĻžāĻ¨ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
waf-āĻ āĻāĻŋāĻā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ ns3 āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻĒāĻžāĻĨ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ waf āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ
āĻāĻāĻāĻŋ waf āĻļā§āĻ˛ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ; āĻ¯ā§āĻŽāĻ¨:
$./waf --shell
$ python āĻāĻĻāĻžāĻšāĻ°āĻŖ/wireless/mixed-wireless.py
āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻāĻŋ āĻšāĻ˛ waf āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ --pyrun āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž:
$ ./waf --pyrun āĻāĻĻāĻžāĻšāĻ°āĻŖ/wireless/mixed-wireless.py
āĻ¸āĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯:
$./waf --shell
$ gdb --args āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ/wireless/mixed-wireless.py
āĻāĻ˛ āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ ns-3 āĻāĻŦāĻ āĻ¯ā§ āĻāĻ āĻĒāĻĨ āĻāĻā§,
/path/to/your/example/my-script.py, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĻ¨:
$./waf --shell
$ python /path/to/your/example/my-script.py
āĻāĻĻā§āĻļ āĻ¸āĻšāĻāĻžāĻ°ā§
āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ ns-3 āĻāĻāĻāĻŋ āĻāĻžāĻ āĻāĻ˛āĻā§, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻŋāĻ¤
āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻāĻŋāĻā§ (āĻ¸āĻŦ āĻ¨āĻ¯āĻŧ) āĻāĻāĻžāĻ¨ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻāĻžāĻ°ā§āĻ
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻĒāĻžāĻāĻĨāĻ¨ā§ 100% API āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŋāĻā§
āĻāĻžāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻšāĻ˛:
1. āĻāĻŋāĻā§ āĻāĻĒāĻŋāĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻĄāĻŧāĻŋāĻ¤, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻā§āĻāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻĒāĻžāĻ¸āĻŋāĻ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻŦāĻŋāĻĻā§āĻ¯āĻž (āĻā§ āĻā§ āĻ¸ā§āĻŽā§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ˛āĻŋāĻ)āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻāĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ āĻāĻļ āĻ¨āĻ¯āĻŧ
āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°, āĻāĻŦāĻ āĻšāĻ¯āĻŧ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻŦāĻž āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻŽāĻ¨āĻāĻŋ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻā§āĻāĻž āĻšāĻ¯āĻŧ
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻĻā§āĻ§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨;
2. āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŽā§āĻ˛āĻŋāĻ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻŦāĻž C++ āĻāĻ āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻ¨āĻ āĻšāĻ¯āĻŧāĻ¨āĻŋ
PyBindGen āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤;
3. āĻāĻŋāĻ¸āĻŋāĻ¸āĻŋ-āĻāĻā§āĻ¸āĻāĻŽāĻāĻ˛ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻā§āĻ˛āĻžāĻ¸ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§ āĻ¨āĻž āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ APIs āĻ āĻ§āĻŋāĻāĻžāĻāĻļ āĻŽā§āĻĄāĻŧāĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻĨā§āĻˇā§āĻ āĻ¸āĻŽāĻ¯āĻŧ, āĻ§ā§āĻ°ā§āĻ¯, ââāĻāĻŦāĻ āĻĻāĻā§āĻˇāĻ¤āĻž āĻĻā§āĻāĻ¯āĻŧāĻž, āĻāĻŦāĻ
āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻŽāĻž āĻĻāĻŋāĻ˛ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻŽā§āĻĄāĻŧāĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻĢāĻžāĻāĻ˛ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž
"āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ", āĻāĻžāĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ 100% āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻŦāĻ˛ āĻ¨ā§āĻ
āĻŦāĻžāĻāĻ§āĻžāĻ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻ°āĻž
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° PyBindGen āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻ¨āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻžāĻ āĻāĻ°ā§
Python āĻ API āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, C++ āĻ āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ:
Ipv4AddressHelper ipAddrs;
ipAddrs.SetBase ("192.168.0.0", "255.255.255.0");
ipAddrs.Assign (backboneDevices);
āĻĒāĻžāĻāĻĨāĻ¨ā§, āĻāĻĒāĻžāĻ¤āĻ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
ipAddrs = ns3.Ipv4AddressHelper()
ipAddrs.SetBase(ns3.Ipv4Address("192.168.0.0"), ns3.Ipv4Mask("255.255.255.0"))
ipAddrs. Assign (āĻŦā§āĻ¯āĻžāĻāĻŦā§āĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¸)
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨::āĻ ā§āĻ¯āĻžāĻĄāĻā§āĻ¯āĻžāĻ˛ā§() āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ ns-3. āĻĒāĻžāĻāĻĨāĻ¨ā§, āĻĻ
āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯āĻž āĻāĻŽāĻžāĻ¨ā§āĻĄ-āĻ˛āĻžāĻāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¨āĻžāĻŽ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ
āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻāĻ¨()
āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
NUM_NODES_SIDE_DEFAULT = 3
cmd = ns3.CommandLine()
cmd.NumNodesSide = āĻā§āĻ¨āĻāĻŋ āĻ¨āĻ¯āĻŧ
cmd.AddValue("NumNodesSide", "āĻ¨ā§āĻĄā§āĻ° āĻā§āĻ°āĻŋāĻĄ āĻ¸āĻžāĻāĻĄ āĻ¨āĻŽā§āĻŦāĻ° (āĻ¨ā§āĻĄā§āĻ° āĻŽā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻŦāĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§)")
cmd.Parse(argv)
[...]
āĻ¯āĻĻāĻŋ cmd.NumNodesSide āĻā§āĻ¨āĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ:
num_nodes_side = NUM_NODES_SIDE_DEFAULT
āĻ āĻ¨ā§āĻ¯:
num_nodes_side = int(cmd.NumNodesSide)
āĻ°āĻāĻ¨āĻž
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻāĻ¨āĻ āĻĒāĻžāĻāĻĨāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ ns-3 API āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻž āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§.
Pcap āĻĢāĻžāĻāĻ˛ āĻ˛ā§āĻāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤āĨ¤
Ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ° āĻĒāĻ° āĻĨā§āĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ ns-3.4 āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ C++ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, ascii āĻā§āĻ°ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ ascii-āĻ¤ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻĒāĻžāĻāĻĨāĻ¨ā§, āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ C++ std::ofstream āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻāĻžāĻŦā§ āĻŽā§āĻĄāĻŧāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§
āĻāĻ. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ:
ascii = ns3.ofstream("wifi-ap.tr") # āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
ns3.YansWifiPhyHelper.EnableAsciiAll(ascii)
ns3.Simulator.Run()
ns3.Simulator.Destroy()
ascii.close() # āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻāĻā§: āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻāĻ˛ āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻāĻŦāĻ°ā§āĻāĻ¨āĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĻ¨ āĻ¨āĻž ns-3
āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ° 'ascii' āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻāĻŋāĻā§ āĻ¯ā§āĻ¤ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ
āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ¨āĻž āĻšāĻ˛ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻŦā§āĨ¤
Cygwin āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž
āĻ¸āĻžāĻāĻāĻāĻāĻ¨ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ gccxml āĻŦāĻžāĻ āĻāĻ° āĻāĻžāĻ°āĻŖā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻžāĻāĻāĻāĻāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨā§āĻā§ API āĻ¸āĻāĻā§āĻāĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°ā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻĻā§āĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°āĻŋāĻŦā§āĻļ (./waf --python-scan)āĨ¤ āĻ¤āĻŦā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻšāĻŦā§
āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻāĻāĻāĻāĻ¨ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻŋāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻāĻ¨ā§āĻĄā§āĻā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¯āĻ¤ā§āĻ¨āĻļā§āĻ˛ āĻšāĻ¨ āĻ¤āĻŦā§ mingw āĻāĻŦāĻ āĻ¨ā§āĻāĻŋāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻžāĻāĻĨāĻ¨āĨ¤ āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻāĻžāĻĄāĻŧāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --disable-python
āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻā§āĻā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻĻā§āĻāĻŋ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§ ns-3:
1. āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻŋāĻ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ API āĻ¸āĻāĻā§āĻāĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ
āĻāĻāĻāĻŋ āĻāĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻŦāĻžāĻāĻ§āĻžāĻ/āĻĒāĻžāĻāĻĨāĻ¨.
2. āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ API āĻ¸āĻāĻā§āĻāĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻš
āĻ¯ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻšāĻ˛:
1. āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ GCC-XML āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (http://www.gccxml.org) āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ API āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻ
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ, āĻ¯āĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž API āĻ¸āĻāĻā§āĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§ bindings/python/ns3_module__*.py āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻ āĻĨāĻŦāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛ā§ āĻ¨āĻŋāĻā§ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧ
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ ns-3 āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛;
2. āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž API āĻ¸āĻāĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
3. āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ ns-3, pybindgen āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¯āĻĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻž āĻĨāĻžāĻā§
āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻŽā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§ ns-3 āĻāĻžāĻ°āĻŦāĻ˛āĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻŦāĻŋāĻ¨ā§āĻĄāĻā§āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻŦā§āĨ¤
āĻ¯āĻĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻā§āĻ˛ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨
āĻāĻŦāĻ C++ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$./waf --disable-python
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ° or āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ API āĻā§āĻ˛āĻŋ
āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ ns-3 āĻāĻĒāĻŋāĻāĻ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻāĻ° āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻšāĻ¯āĻŧ āĻ¨āĻž? āĻāĻ°āĻŦā§āĻ¨
āĻšāĻ¤āĻžāĻļāĻž āĻ¨āĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻĨā§āĻā§ ns-3 API- āĻāĻŋāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻŋāĻ āĻŦāĻž āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĻ¨ āĻāĻŋāĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻ¨ā§āĻā§āĻ° āĻāĻ˛ā§āĻāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻļāĻŋāĻā§āĻ¨āĨ¤
āĻāĻāĻļāĻŋāĻ˛āĻž āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻĻā§āĻ¯ āĻāĻāĻļāĻŋāĻ˛āĻž āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻŋāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$./waf --python-scan
āĻ¸āĻāĻāĻ āĻ¨ of āĻĻā§āĻ¯ āĻāĻāĻļāĻŋāĻ˛āĻž āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻŽāĻ¨ā§āĻ˛āĻŋāĻĨāĻŋāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĒāĻŋāĻāĻ āĻ¸āĻāĻā§āĻāĻžāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ¸āĻāĻāĻ āĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛
, āĻĢāĻžāĻāĻ˛ bindings/python/ns3_module_ .py āĻāĻ° API āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻ¯āĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ
āĻĢāĻžāĻāĻ˛ā§āĻ° 3āĻāĻŋ āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§:
1. Def register_types(āĻŽāĻĄāĻŋāĻāĻ˛)(): āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§āĻ¯āĻŧ (āĻ¯ā§āĻŽāĻ¨
C++ āĻā§āĻ˛āĻžāĻ¸, enums) āĻ¯āĻž tha āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
2. Def āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°_āĻĒāĻĻā§āĻ§āĻ¤āĻŋ(āĻŽāĻĄāĻŋāĻāĻ˛)(): āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛ āĻāĻ°ā§ , āĻ āĻ¨ā§āĻ¯
āĻĢāĻžāĻāĻļāĻ¨ register_methods_Ns3 (āĻŽāĻĄāĻŋāĻāĻ˛)āĨ¤ āĻāĻ āĻĒāĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§āĻ
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻž;
3. Def āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°_āĻĢāĻžāĻāĻļāĻ¨(āĻŽāĻĄāĻŋāĻāĻ˛)(): āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ ns-3 āĻāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻĢāĻžāĻāĻļāĻ¨
āĻ¯ā§ āĻŽāĻĄāĻŋāĻāĻ˛.
āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
ns 3.11 āĻĨā§āĻā§, āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§, āĻĒā§āĻ°āĻžāĻ¨ā§ āĻāĻāĻļāĻŋāĻ˛āĻžāĻāĻŋāĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§
āĻŦāĻžāĻāĻ§āĻžāĻ
āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ 'ns3' āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ 'ns' āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
ns.network āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻ¨ā§āĻĄ āĻĨā§āĻā§
n1 = āĻ¨ā§āĻĄ()
āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¸āĻš:
1. āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛
2. āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻ API āĻ¸āĻāĻā§āĻāĻž (apidefs) āĻĒā§āĻ°āĻ¤āĻŋ ns- āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ;
3. āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ ā§āĻ¯āĻžāĻĒāĻŋāĻĄā§āĻĢ āĻĢāĻžāĻāĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ 'āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ' āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ;
āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻĻā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$./waf --apiscan=core
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$./waf --apiscan=āĻ¸āĻŽāĻ¸ā§āĻ¤
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ a āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨, āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻšāĻ¤ā§ āĻĨāĻžāĻāĻŦā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ bindings/python/ns3_module_ .py āĻĢāĻžāĻāĻ˛,
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§āĻ¨
LOCAL_MODULES() in bindings/python/ns3modulegen.py
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻžāĻāĻ§āĻžāĻ āĻĨā§āĻā§ A āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛, āĻā§āĻŦāĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻ° wscript build() āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ˛āĻžāĻāĻ¨:
bld.ns3_python_bindings()
āĻ¸āĻāĻāĻ āĻ¨ of āĻĻā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° src/ / āĻŦāĻžāĻāĻ§āĻžāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ
āĻāĻā§āĻāĻŋāĻ:
¡ callbacks_list.py: āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛, āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ<...> āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻšā§āĻĄāĻžāĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ;
¡ modulegen__gcc_LP64.py: āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛, āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž API āĻ¸āĻāĻā§āĻāĻž
GCC, LP64 āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ (64-āĻŦāĻŋāĻ)
¡ modulegen__gcc_ILP32.py: āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛, āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž API āĻ¸āĻāĻā§āĻāĻž
GCC, ILP32 āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ (32-āĻŦāĻŋāĻ)
¡ modulegen_customizations.py: āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻžāĻāĻŦāĻŋāĻ¨ā§āĻĄāĻā§āĻ¨ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨
¡ scan-header.h: āĻā§āĻ¨ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¨ā§āĻ¯. āĻŽā§āĻ˛āĻ¤ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ ns3/ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ -module.h.
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻāĻŋ āĻšāĻ˛ #include "ns3/ -module.h", āĻāĻ°āĻ āĻāĻŋāĻā§
āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻļāĻ¨ āĻā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻāĻžāĻĢ;
¡ module_helpers.cc: āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻĨāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻŋ
āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛, āĻ¤āĻŦā§ āĻ¤āĻžāĻĻā§āĻ° wscript āĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¤āĻžāĻāĻžāĻ¨ā§
āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ src/core/wscript;
¡ .py: āĻ¯āĻĻāĻŋ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻāĻāĻŋ ns3 āĻāĻ° āĻāĻ¨ā§āĻ¯ "āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ" āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ
āĻŽāĻĄāĻŋāĻāĻ˛, āĻāĻŦāĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ (. āĻ¤āĻžāĻ āĻĢāĻžāĻāĻ˛) āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ _ āĻ¤āĻžāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ¤āĻžāĻ
āĻĻā§āĻ¯ .py āĻĢāĻžāĻāĻ˛āĻāĻŋāĻā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŋāĻšā§āĻ¨ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ _ (āĻāĻāĻŋ āĻāĻ°āĻ
āĻāĻāĻŋ āĻļā§āĻ¨āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨, āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ src/core/bindings/core.py āĻĻā§āĻā§āĻ¨), āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦāĻŋāĻļā§āĻĻā§āĻ§-āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĨ¤
āĻ āĻ§āĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻāĻŖ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻšāĻ¨ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ ns-3āĻāĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ, āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨
āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž.
āĻā§āĻ¸ā§āĻ
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻ āĻ¨āĻĨāĻŋāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ ns-3 āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°.
āĻāĻ āĻ¨āĻĨāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
¡ āĻĒāĻ°āĻŋāĻāĻžāĻˇāĻž āĻāĻŦāĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻāĻā§āĻŽāĻŋ (āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ 2);
¡ ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ (āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ 3);
āĻŽāĻĄā§āĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛ āĻ āĻŦāĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧ (āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ
4);
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻĒā§āĻ°āĻĨāĻŽ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ ns āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻāĻŦāĻ āĻ āĻŦāĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒāĻĄāĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¯āĻžāĻ°āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻĄ āĻāĻŦāĻ āĻŦā§āĻ§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻŦāĻ āĻ āĻŦāĻļāĻŋāĻˇā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§
āĻ¨āĻĨāĻŋāĻ° āĻ˛ā§āĻā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ā§ˇ
āĻŦā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻĒāĻāĻā§āĻŽāĻŋ
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ may be āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§ by āĻĒāĻžāĻ āĻāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¸āĻā§āĻā§ āĻĻā§āĻ¯ āĻŽā§āĻ˛āĻ¸ā§āĻ¤ā§āĻ° of āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ.
āĻ¤ā§āĻ°ā§āĻāĻŋ-āĻŽā§āĻā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ˛ā§āĻāĻž āĻāĻāĻāĻŋ āĻāĻ āĻŋāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĨ¤ āĻ āĻ¨ā§āĻ āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻāĻā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋ āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¨ā§āĻ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻĨāĻ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻāĻ°ā§āĻāĻŋ
āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻĒāĻĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĨ¤
āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ˛āĻāĻžāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻ āĻāĻŋāĻĒā§āĻ°āĻžāĻ¯āĻŧāĨ¤ āĻ¯āĻāĻ¨ āĻā§āĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§, āĻ¤āĻāĻ¨ āĻāĻāĻŋ
āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻ¯āĻŧā§ āĻāĻ ā§ āĻ¯ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻŽāĻ¨-āĻ¸ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻā§āĻ āĻĒāĻžāĻ°ā§
āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻāĻžāĻā§ āĻ¯āĻžāĻ¨āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻŽāĻ¨
''āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž,''''āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž,''''āĻĻā§āĻĸāĻŧāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž'' āĻāĻŦāĻ ''āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤'' āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻā§āĻŦāĻ¨āĻāĻā§āĻ°: ''āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž,''
''āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻā§āĻ¸ā§āĻāĻŋāĻ,''''āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž,''āĻāĻŦāĻ ''āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤'' āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĻā§āĻļā§āĻ¯āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻ ''āĻāĻāĻ¨āĻŋāĻ āĻā§āĻ¸ā§āĻāĻŋāĻ'' āĻāĻ° āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
''āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻā§āĻ¸ā§āĻāĻŋāĻ,'''' āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻā§āĻ¸ā§āĻāĻŋāĻ'' āĻāĻŦāĻ ''āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ¸ā§āĻāĻŋāĻ'' āĻāĻ āĻĒāĻĻāĻā§āĻ˛āĻŋ āĻšāĻ˛
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻ¨ā§āĻāĻžāĻŦā§āĻ āĻŽāĻžāĻ¨āĻ¸āĻŽā§āĻŽāĻ¤ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ āĻ¤āĻžāĻ ''āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž'' āĻāĻŦāĻ ''āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨
āĻā§āĻ¸ā§āĻāĻŋāĻ'' āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻļā§āĻ¨āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻ āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ āĻĒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĻāĻžāĻ°ā§āĻļāĻ¨āĻŋāĻ āĻĒāĻ¨ā§āĻĨāĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŋāĻā§ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛ā§āĻāĻžāĻ° āĻĒāĻā§āĻˇā§
āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°, āĻĢāĻ˛āĻ¨ ''āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĨ¤'' āĻāĻŋāĻā§ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
āĻ¯āĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻšāĻā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž, āĻ¸āĻā§āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ
āĻāĻāĻĒāĻā§ āĻŦāĻŋāĻāĻžāĻļ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž: ''āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤'' āĻāĻāĻŋāĻā§ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
''āĻāĻāĻĒāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤'' āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¯ā§ āĻā§āĻ¨āĻ āĻāĻāĻāĻŋāĻ° āĻĒāĻā§āĻˇā§ āĻāĻāĻžāĻ˛āĻ¤āĻŋ āĻāĻ°āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§
āĻĒā§āĻ°ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ¨āĻžāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻŖā§āĻ¯ā§āĻ° āĻŽāĻ¤, ns-3 āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻāĻž āĻāĻŦāĻļā§āĻ¯āĻ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻāĻā§
āĻĒāĻŖā§āĻ¯āĻāĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻāĻ āĻā§āĻŖāĻžāĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻŋāĻā§ āĻšāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻŽā§āĻŦā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ ns-3 āĻšāĻ¤ā§ āĻšāĻŦā§ ''āĻ¸āĻ āĻŋāĻ,''''āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§,''''āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸'' āĻāĻŦāĻ
''āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻ¯ā§āĻā§āĻ¯āĨ¤'' āĻāĻĻāĻ°ā§āĻļāĻāĻžāĻŦā§ āĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤
āĻĒāĻŖā§āĻ¯āĻāĻŋ āĻāĻāĻ¨ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻž āĻĒā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ /
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĨ¤
āĻ¸āĻ āĻŋāĻāĻ¤āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻ˛ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻāĻāĻ°āĻŖ āĻāĻ°ā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž
''āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§āĨ¤'' āĻāĻ¨ā§āĻ¯ ns-3 āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻŋ, āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻāĻŋāĻā§ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻ¸āĻ¤ā§āĻ¤āĻž āĻŦāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻāĻŦāĻ
āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻžāĨ¤
āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĨā§āĻā§ āĻāĻāĻāĻ¨ āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻĄā§āĻ˛ āĻ¤āĻžāĻ° āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻĒāĻžāĻĻāĻ¨. āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ āĻŋāĻ āĻ¯ā§ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻāĻ° āĻāĻĻā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻŦā§āĻ§āĻ¤āĻž.
āĻā§āĻ¯āĻžāĻ˛āĻŋāĻĄā§āĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻĒāĻžāĻĻāĻ¨
āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻŽāĻĄā§āĻ˛ āĻšāĻ˛ āĻā§āĻ¨ā§ āĻāĻŋāĻā§āĻ° āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻŦāĻž āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤ āĻāĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻ¯āĻžāĻ¨āĻŦāĻžāĻšāĻ¨, āĻāĻāĻāĻŋ āĻšāĻžāĻ¤āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§āĻ¨ (āĻĻā§āĻā§āĻ¨ āĻĄā§āĻāĻŋāĻĄ āĻšāĻžāĻ°ā§āĻ˛ā§āĻ° āĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻŦāĻ¨ā§āĻ§ā§ āĻŽā§āĻ°ā§āĻ¤āĻŋāĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ an āĻšāĻžāĻ¤āĻŋ at
āĻ¸āĻŋāĻŽā§āĻā§āĻ˛ 2009, āĻ āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻāĻžāĻ°ā§āĻĄāĨ¤ āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻā§āĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻˇā§āĻŖāĻžāĻ¯āĻŧāĻ¨, āĻĢā§āĻ°āĻŋāĻāĻ¯āĻŧā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻĒā§āĻ°āĻŦāĻžāĻš āĻŦāĻž āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨āĨ¤ āĻŽāĻĄā§āĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž
āĻ āĻāĻ¤ā§āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻāĻāĻŋ āĻā§āĻ¤ ââāĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž. āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ
āĻāĻŽā§āĻĒāĻŋāĻāĻā§āĻļāĻ¨āĻžāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻāĻŋāĻ¤ā§ āĻ¸āĻāĻā§āĻ¯āĻ āĻ¸āĻ°āĻ˛ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻā§āĻ°ā§āĻ¯āĻžāĻā§āĻā§āĻŦāĻ˛
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻāĻāĻāĻŋ āĻāĻā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻāĻž āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒ
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ˛ āĻāĻ āĻāĻžāĻ°ā§āĻā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¸ā§āĻ¤āĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻāĻŦāĻ
āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻ¯ā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨āĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§,
āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋāĻā§ "RFC 793 āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ TCP" āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ
āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦāĻžāĻā§āĻāĻ¨ā§āĻ¯āĻŧ āĻšāĻŦā§ āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤āĻāĻžāĻŦā§ RFC āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§
793. āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ
āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ˛ā§āĻ¸ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻāĻžāĻ°ā§āĻĄ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, ''āĻāĻāĻāĻŋ
802.11 āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻ āĻŋāĻ MAC-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻŦāĻ [...] āĻā§āĻŦ āĻ§ā§āĻ° āĻ¨āĻ¯āĻŧ
802.11a āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§āĻ° PHY-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŽāĻĄā§āĻ˛ā§ˇ''
āĻāĻāĻŦāĻžāĻ° āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ˛ā§, āĻā§āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻŋāĻ˛āĻ¤āĻž, āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻĄāĻ āĻĢ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨
āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻžāĨ¤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻŽāĻĄā§āĻ˛
āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ¸āĻžāĻšāĻŋāĻ¤ā§āĻ¯ā§. āĻāĻāĻāĻŋ TCP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ a
āĻŦāĻ¸ā§āĻ¤ā§, āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŦā§
RFC 793 in ns-3. āĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ˛ā§āĻ¸ āĻāĻžāĻ°ā§āĻĄā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ
āĻā§āĻ°ā§āĻĄāĻ āĻĢ āĻĢāĻŋāĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻāĻŦāĻ āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻŦāĻ¸ā§āĻ¤ā§, āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻāĻ°āĻŖ āĻ¸āĻš ns-3 āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĨ¤
āĻāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ ns-3 āĻŽāĻĄā§āĻ˛ āĻ¯āĻž āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŽāĻĄā§āĻ˛āĨ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻā§āĻā§ āĻāĻāĻŽāĻ¤ āĻĒā§āĻˇāĻŖ āĻāĻ°ā§
āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻŽāĻĄā§āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻĒāĻžāĻĻāĻ¨ āĻ¸āĻžāĻšāĻŋāĻ¤ā§āĻ¯ā§.
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻā§āĻ˛āĻž āĻ˛ā§āĻĒ. āĻāĻŋ āĻ āĻŦāĻļā§āĻˇ āĻāĻāĻāĻŋ āĻ¸āĻāĻāĻ˛ā§āĻĒ āĻāĻ°āĻž āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ ns-3
āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻŋāĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻā§ -- āĻ¯ā§ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻāĻ° āĻ¸āĻ āĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻž āĻāĻāĻāĻŋ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻ¸āĻ¤ā§āĻ¤āĻž āĻāĻŋāĻ¨āĻž.
āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§ āĻāĻ°ā§ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻŋāĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ˛āĻā§
āĻāĻāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻāĻŋāĻā§ āĻāĻžāĻ°āĻŖ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ -- āĻ āĻ°ā§āĻĨāĻžā§, āĻā§āĻ āĻāĻŋ āĻāĻāĻž āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŽāĻĄā§āĻ˛ āĻĨā§āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§āĻ¤ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĨ¤
āĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŽāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ ns-3 āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻŽāĻĄā§āĻ˛ āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻāĻ°āĻŖ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ§āĻ¤āĻž āĻŽāĻ§ā§āĻ¯ā§
āĻ¸āĻžāĻšāĻŋāĻ¤ā§āĻ¯ āĻāĻāĻāĻŋ TCP āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻāĻāĻ°āĻŖ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° ns-3 TCP āĻŽāĻĄā§āĻ˛āĨ¤ āĻāĻŋāĻ¤āĻ°ā§
āĻāĻāĻāĻŋ āĻŦā§āĻ¤āĻžāĻ° āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻ¸ā§āĻ¤āĻ° āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ°āĻŖ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛āĻāĻŋ āĻāĻ¸āĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§,
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻŦā§āĻ§āĻ¤āĻž āĻāĻŦāĻ
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§, āĻāĻŦāĻ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻāĻžāĻļā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°ā§āĨ¤
āĻŦāĻ˛āĻŋāĻˇā§āĻ āĻ¤āĻž
āĻĻā§āĻĸāĻŧāĻ¤āĻž āĻšāĻ˛ āĻāĻžāĻĒ, āĻŦāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻšā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻŖ,
āĻāĻ¨āĻĒā§āĻ āĻŦāĻž āĻāĻŖāĻ¨āĻž, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻž āĻ¨āĻāĻļāĻž "āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§" āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻā§āĻˇāĻ¤āĻŋ āĻ¸āĻā§āĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨.
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢā§āĻāĻžāĻ¸ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻŋāĻĒā§āĻ˛ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°ā§ āĻ§āĻžāĻ°āĻŖāĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻāĻžāĻ āĻāĻ°ā§āĻ āĻāĻžāĻĒ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻŽā§āĻĒāĻĻ āĻ¨āĻŋāĻāĻ¸āĻ°āĻŖ āĻ āĻ¨ā§āĻāĻ°āĻŖāĨ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ āĻ§āĻžāĻ°āĻž āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
''āĻāĻžāĻĒ āĻĒāĻ°ā§āĻā§āĻˇāĻž.''
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ ''āĻā§āĻ˛āĻŋāĻ¨ āĻā§āĻ¸ā§āĻ'' āĻāĻ° āĻ¸āĻāĻ¸ā§āĻĒāĻ°ā§āĻļā§ āĻāĻ¸āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ -- āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻžāĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ "āĻ¨ā§āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž" āĻāĻ° āĻ¸āĻāĻ¸ā§āĻĒāĻ°ā§āĻļā§ āĻāĻ¸āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻāĻ¨āĻĒā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ¸ā§āĻŽāĻžāĻ° āĻŦāĻžāĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻāĻŋ āĻļā§āĻ¨ā§āĻ¯-āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻļāĻž āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ, āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻāĻāĻāĻŋ āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻ¨āĻĒā§āĻā§āĻ° āĻĢāĻ˛ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻā§āĻˇāĻ°āĨ¤
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° ''āĻ¨ā§āĻāĻ°āĻž'' āĻāĻ¨āĻĒā§āĻ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§āĻŽā§āĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ¨ā§āĻāĻ¯āĻŧāĻž
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻŋāĻĒāĻ°ā§āĻ¯āĻ¯āĻŧāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¨ ns-3 āĻā§āĻĄāĻŦā§āĻ¸ āĻāĻ¨ā§āĻ¯
āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻ¨ā§āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻŋ āĻ¨āĻž -- āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ¨ā§āĻŽā§āĻāĻŋāĻ¤ āĻāĻ°āĻŦā§
āĻ¨āĻāĻļāĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻŋ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻāĻŽāĻ°āĻž āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ ns-3 āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŋāĻā§ āĻļāĻ°ā§āĻ¤ āĻā§āĻĄāĻŧā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž
āĻāĻāĻŋāĻā§ āĻāĻŋāĻā§āĻāĻž āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻāĻā§āĻāĻž āĻ§āĻžāĻ° āĻ¨āĻŋāĻ¨āĨ¤ āĻĻā§āĻ¯ āĻĄā§āĻŽā§āĻāĻ¨ of āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž is
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻļāĻ°ā§āĻ¤āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄā§āĻ˛āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ, āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻŦāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻĻā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸āĻ° of āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻāĻāĻāĻŋ
āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°āĻžāĻāĻāĻĄ āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻā§āĻ¤āĻŋāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻā§āĻ¸ā§āĻāĻŋāĻ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ āĻāĻĒ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§
āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻĒāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ (āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ) āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĻā§ āĻā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ ''āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻĄā§āĻŽā§āĻ¨'' āĻāĻ° āĻāĻĒāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻāĻŦāĻ ''āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻ¸āĻ°''āĨ¤
āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ
āĻ āĻŋāĻ āĻāĻā§, ''āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸'' āĻāĻāĻāĻŋ āĻāĻ¸āĻ˛ āĻāĻāĻ°ā§āĻāĻŋ āĻļāĻŦā§āĻĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¨āĻŋāĻāĻ˛āĻāĻŋāĻāĻŽ
āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻāĻžāĻ āĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ ns-3 āĻšāĻ¤ā§: āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻāĻŦāĻ āĻ¯āĻĨā§āĻˇā§āĻ āĻĻā§āĻ°ā§āĻ¤
āĻāĻžāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°.
āĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĨ¤ āĻāĻ
āĻ¯ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻšāĻ˛ āĻĻā§āĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻž āĻāĻžāĻ˛ āĻĒāĻžāĻ°āĻĢāĻ°ā§āĻŽ āĻāĻ°ā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž (cf
āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ)āĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, ns-3 āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻā§ āĻā§āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻā§āĻ°ā§āĻ¤, āĻŦāĻž āĻ āĻāĻļ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯ā§ āĻāĻžāĻ°āĻžāĻĒāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§.
āĻŽāĻ§ā§āĻ¯ā§ ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋāĨ¤
Maintainability
āĻāĻāĻāĻŋ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻŖā§āĻ¯ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻ¯ā§āĻā§āĻ¯ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ, āĻāĻŦāĻžāĻ°, āĻāĻāĻāĻŋ āĻā§āĻŦ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ
āĻā§āĻ¸ā§āĻāĻŋāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻžāĻ¸ā§āĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŦāĻžāĻ° āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ
āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
āĻ¯ā§ āĻāĻāĻŋ āĻ¤āĻžāĻ° āĻā§āĻŦāĻĻā§āĻĻāĻļāĻžāĻ¯āĻŧ āĻŦā§āĻ§ āĻāĻŦāĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻĨāĻžāĻā§āĨ¤
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻŋāĻā§ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§
āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤, āĻāĻāĻŋāĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻāĻ¤āĻŋ. āĻŽā§āĻ˛āĻ¤ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻļāĻŦā§āĻĻāĻāĻŋ
āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻĒā§āĻ°ā§āĻŦā§ āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻŦāĻŋāĻ°ā§āĻā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļāĻŦā§āĻĻāĻāĻŋ āĻāĻā§
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻā§āĻā§ āĻ¯ā§ āĻā§āĻ¨ā§ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨āĨ¤
A āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻāĻ¤āĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻŦāĻ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻšāĻ¯āĻŧ
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤, āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ.
A āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻāĻ¤āĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻā§āĻā§ āĻĻā§āĻ¯āĻŧ
āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ āĻ¸ā§āĻŦā§āĻā§āĻ¤ āĻ˛āĻā§āĻāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻāĻ°ā§ā§ˇ
āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻā§āĻ¤āĻŋāĨ¤
An āĻŽā§āĻā§āĻļāĻšā§āĻ¨ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻāĻ¤āĻŋ āĻāĻāĻŋ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°ā§āĻŦā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻžāĻ
āĻ¯ā§ āĻā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻŦ āĻāĻŋāĻ˛ āĻšāĻ āĻžā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĻā§āĻāĻžāĻ¸āĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ¯āĻŧāĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻšāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻĄ āĻĒāĻĨāĨ¤
A āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻāĻ¤āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ
āĻ˛āĻā§āĻāĻ¨ āĻāĻ°āĻž āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ā§ āĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¯āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ āĻ¨ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻ āĻžā§ āĻāĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§āĻā§āĻ¯ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻā§āĻ¸ā§āĻāĻŋāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§ āĻāĻŦāĻ
āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¤ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻĄāĻāĻŋ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ
ns-3 āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻā§āĻ° āĻāĻā§āĻāĻŋāĻ¨, āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤
āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§, āĻ¨āĻ¤ā§āĻ¨ āĻ āĻŦāĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻ°āĻž āĻŽāĻĄā§āĻ˛, āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ
test.py āĻā§āĻ¸ā§āĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻ āĻāĻ°ā§; test.py āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻĄ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĢāĻ°ā§āĻŽā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻā§āĻĄ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻžāĻ°ā§āĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĨ¤ āĻāĻ āĻāĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻ¤āĻ° āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻ¯ā§āĻā§āĻ˛ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻŋāĻ˛ā§āĻĄ
āĻ°ā§āĻŦāĻ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻĻā§āĻĸāĻŧāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ āĻĒāĻļāĻ¨ āĻ¸āĻšāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻāĻ¸
NS-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§ āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ (āĻŦāĻŋāĻ˛ā§āĻĄ āĻ°ā§āĻŦāĻ) āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¤ā§āĻŽāĻŋ āĻšāĻ
āĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤āĻžāĻāĻžāĻ¨ āĻ¸āĻā§āĻā§ āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ http://djmitche.github.com/buildbot/docs/0.7.11/.
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻž āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ ns-3 āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻŦā§
āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧā§āĻā§. āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž
āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž (āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž) āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻŦā§ āĻ¨āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¤āĻžāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻĄāĻŧā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻāĻāĻāĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ§āĻ°āĻž āĻĒāĻĄāĻŧā§
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻžāĻ, āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ˛ āĻĒāĻžāĻ āĻžāĻŦā§ ns-āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻ°āĻž
āĻŽā§āĻāĻ˛āĻŋāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤ āĻāĻ āĻāĻŽā§āĻ˛ āĻŽāĻ¤ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§
āĻāĻŽā§āĻ˛ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖ URL-āĻ, āĻā§āĻ āĻā§āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻāĻŦāĻ
āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ stdio āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖ āĻĻā§āĻāĻ¤ā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ§āĻžāĻĒā§āĻ° āĻ˛āĻŋāĻā§āĻāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻ¨āĻŋāĻāĻļāĻŦā§āĻĻā§ āĻ¤āĻžāĻ° āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻ°āĻŦā§
āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ āĻāĻā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤
Test.py
āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, test.py, āĻ¯ā§ āĻ¸āĻŦ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻŽāĻžāĻ¨āĻŦ-āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻāĻāĻžāĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻžāĨ¤ āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻ˛
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§āĨ¤
test.py āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŦāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻŦāĻ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ
āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻŦāĻ āĻ§āĻ°āĻ¨ā§āĻ°.
āĻĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻā§ test.py, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ ns3 āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests
$./waf
āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ, test.py āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻā§āĻŦ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨ āĻāĻ°āĻŦā§
āĻĢāĻ°ā§āĻŽ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻā§āĻā§āĻ¨
$ ./test.py
āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŦā§ āĻĒāĻžāĻ¸, āĻŦā§āĻ¯āĻ°ā§āĻĨ, āĻā§āĻ°āĻžāĻļ or āĻāĻĄāĻŧāĻŋāĻ¯āĻŧ āĻ§āĻ°āĻ¨ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻā§āĻāĻŋāĻ¤
āĻ¯ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽāĨ¤
Waf: '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¯āĻŧāĻžāĻĢ: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻā§āĻā§ `/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (0.939s)
āĻŦā§āĻ¯āĻ°ā§āĻĨ: TestSuite ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĒā§āĻ°āĻāĻžāĻ°-āĻā§āĻˇāĻ¤āĻŋ-āĻŽāĻĄā§āĻ˛
āĻĒāĻžāĻ¸: TestSuite āĻ āĻŦāĻā§āĻā§āĻ-āĻ¨āĻžāĻŽ-āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž
āĻĒāĻžāĻ¸: TestSuite pcap-file-object
āĻĒāĻžāĻ¸: TestSuite ns3-tcp-cwnd
...
āĻĒāĻžāĻ¸: TestSuite ns3-tcp-āĻāĻ¨ā§āĻāĻžāĻ°āĻ āĻĒāĻžāĻ°ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
PASS: āĻāĻĻāĻžāĻšāĻ°āĻŖ csma-āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ°
PASS: āĻāĻĻāĻžāĻšāĻ°āĻŖ csma-multicast
āĻāĻ āĻŽā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§
āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯āĻžāĻ°āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§
āĻ¤āĻžāĻ°āĻž āĻ¯ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻā§ āĻ¤āĻž āĻā§āĻ¨ā§ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻ°ā§āĻā§āĨ¤
āĻāĻ° āĻāĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§ test.py. āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ˛āĻžāĻ¨
test.py --help āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻžāĻ°āĻžāĻāĻļ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻŽāĻ¨:
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°: test.py [āĻŦāĻŋāĻāĻ˛ā§āĻĒ]
āĻŦāĻŋāĻāĻ˛ā§āĻĒ:
-h, --help āĻāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻĻā§āĻāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨
-āĻŦāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒāĻĨ, --āĻŦāĻŋāĻ˛ā§āĻĄāĻĒāĻĨ=āĻŦāĻŋāĻ˛ā§āĻĄāĻĒāĻĨ
āĻ¯ā§āĻāĻžāĻ¨ā§ ns-3 āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¸ā§āĻ āĻĒāĻĨāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦā§āĻāĻ˛ā§āĻĒāĻŋāĻ āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨)
-c KIND, --constrain=KIND
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ§āĻ°āĻ¨ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ°āĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°ā§āĻ¨
-e āĻāĻĻāĻžāĻšāĻ°āĻŖ, --example=example
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ (āĻā§āĻ¨ āĻāĻĒā§āĻā§āĻˇāĻŋāĻ āĻĒāĻĨ āĻ¨ā§āĻ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨)
-g, --grind āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨
-k, --kinds āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
-l, --list āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§āĻ¨
-m, --āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒāĻ˛ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĨā§āĻā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§
āĻŽāĻžāĻŽāĻ˛āĻž
-n, --nowaf āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§ waf āĻāĻžāĻ˛āĻžāĻŦā§āĻ¨ āĻ¨āĻž
-p PYEXAMPLE, --pyexample=PYEXAMPLE
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ (āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤
āĻĒāĻĨ)
-r, --retain āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛ āĻ§āĻ°ā§ āĻ°āĻžāĻā§āĻ¨ (āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻšāĻ¯āĻŧ
āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§)
-s TEST-SUITE, --suite=TEST-SUITE
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨
-t TEXT-FILE, --text=TEXT-FILEā§ˇ
āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ TEXT-FILE.txt āĻ āĻ˛āĻŋāĻā§āĻ¨
-v, --āĻāĻžāĻ°āĻŦā§āĻ¸ āĻŽā§āĻĻā§āĻ°āĻŖ āĻ āĻā§āĻ°āĻāĻ¤āĻŋ āĻāĻŦāĻ āĻ¤āĻĨā§āĻ¯āĻŽā§āĻ˛āĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž
-w HTML-FILE, --web=HTML-FILE, --html=HTML-FILE
HTML-FILE.html āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ˛āĻŋāĻā§āĻ¨
-x XML-FILE, --xml=XML-FILE
XML-FILE.xml-āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ˛āĻŋāĻā§āĻ¨
āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻļā§āĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§, āĻā§āĻ āĻāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĨ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻļā§āĻ˛ā§ āĻšāĻ¯āĻŧ āĻĒāĻžāĻ āĻāĻŦāĻ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛. āĻŦāĻŋāĻ˛ā§āĻĄāĻŦāĻ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŦā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°āĻžāĻ¤ā§āĻ° āĻŦāĻŋāĻ˛ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ
$ ./test.py --html=nightly.html
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, ''nightly.html'' āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ HTML āĻĢāĻžāĻāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ¸āĻžāĻ°āĻžāĻāĻļ āĻ¸āĻš āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž. āĻāĻāĻāĻŋ ''āĻŽāĻžāĻ¨āĻŦ āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯'' āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻāĻā§āĻ°āĻšā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§
āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
$ ./test.py --text=results.txt
āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻā§āĻ āĻāĻ°āĻā§ ns-3 āĻŦā§āĻ¤āĻžāĻ° āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻā§āĻˇāĻ¤āĻŋ
āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻ° āĻā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž.
āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻāĻ°āĻ āĻ āĻ¨ā§āĻŦā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§, test.py āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻā§āĻā§āĻ¨
$ ./test.py --suite=ns3-wifi-propagation-loss-models
āĻŦāĻž āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯āĻāĻžāĻŦā§
$ ./test.py -s ns3-wifi-propagation-loss-models
āĻ¯ā§ āĻāĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§ āĻĢāĻ˛āĻžāĻĢāĻ˛.
āĻŦā§āĻ¯āĻ°ā§āĻĨ: TestSuite ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĒā§āĻ°āĻāĻžāĻ°-āĻā§āĻˇāĻ¤āĻŋ-āĻŽāĻĄā§āĻ˛
āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ¸āĻāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻŦāĻŋāĻļāĻĻ āĻ¤āĻĨā§āĻ¯ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§, āĻāĻāĻāĻ¨āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻĒā§āĻā§āĻ° āĻ§āĻ°āĻŖā§āĻ° āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻžāĻā§āĻā§āĻˇāĻŋāĻ¤. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ˛ā§āĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻāĻāĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻĢāĻžāĻāĻ˛ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻŦā§:
$ ./test.py --suite=ns3-wifi-propagation-loss-models --text=results.txt
āĻāĻ° āĻĢāĻ˛ā§ āĻ¸ā§āĻ āĻāĻāĻ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ā§ āĻ˛ā§āĻāĻž
āĻĢāĻžāĻāĻ˛ ''results.txt''āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻŋāĻā§ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤
āĻŦā§āĻ¯āĻ°ā§āĻĨ: āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ ''ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĒā§āĻ°āĻāĻžāĻ°-āĻā§āĻˇāĻ¤āĻŋ-āĻŽāĻĄā§āĻ˛'' (āĻāĻ¸āĻ˛ 0.02 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.01 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00)
āĻĒāĻžāĻ¸: āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ "āĻā§āĻ... āĻĢā§āĻ°āĻŋāĻ¸... āĻŽāĻĄā§āĻ˛..." (āĻāĻ¸āĻ˛ 0.01 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00)
FAIL: āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ "āĻā§āĻ... āĻ˛āĻ āĻĄāĻŋāĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸... āĻŽāĻĄā§āĻ˛" (āĻāĻ¸āĻ˛ 0.01 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.01 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00)
āĻŦāĻŋāĻŦāĻ°āĻŖ:
āĻŦāĻžāĻ°ā§āĻ¤āĻž: āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ SNR āĻŽāĻžāĻ¨ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ
āĻļāĻ°ā§āĻ¤: [āĻāĻ¸āĻ˛ā§ āĻā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻĻā§āĻ°ā§āĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž]
āĻĒā§āĻ°āĻā§āĻ¤: 176.395
āĻ¸ā§āĻŽāĻž: 176.407 +- 0.0005
āĻĢāĻžāĻāĻ˛: ../src/test/ns3wifi/propagation-loss-models-test-suite.cc
āĻ˛āĻžāĻāĻ¨: 360
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻĻā§āĻāĻŋ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ āĻā§āĻ āĻāĻ°ā§
Friis āĻĒā§āĻ°āĻāĻžāĻ° āĻā§āĻˇāĻ¤āĻŋ āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻĒāĻžāĻ¸. āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ˛āĻ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§
āĻĻā§āĻ°āĻ¤ā§āĻŦ āĻĒā§āĻ°āĻāĻžāĻ° āĻŽāĻĄā§āĻ˛āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, 176.395 āĻāĻ° āĻāĻāĻāĻŋ SNR āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻā§, āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻ¤āĻŋāĻ¨ āĻĻāĻļāĻŽāĻŋāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§ 176.407 āĻ¸āĻ āĻŋāĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤āĨ¤ āĻĢāĻžāĻāĻ˛ āĻ¯āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤
āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻā§āĻĄā§āĻ° āĻ˛āĻžāĻāĻ¨ āĻ¯āĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻā§ āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻā§āĨ¤
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻ āĻŋāĻ āĻ¸āĻšāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ HTML āĻĢāĻžāĻāĻ˛ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ --html āĻĒāĻāĻ¨ā§āĻĻ
āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤.
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒāĻ° āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻŦāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻŦā§āĻ¨ ns-3 āĻ¸ā§āĻāĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§
āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¸āĻ āĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻā§
āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§āĨ¤ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻā§ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻŦā§
āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨āĻŋ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻ¨āĻžāĻ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻāĨ¤ āĻāĻ¨ā§āĻ¯
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨. āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§, test.py āĻāĻ° āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§āĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŦā§
āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§:
$ ./test.py --constrain=unit
āĻāĻāĻāĻāĻžāĻŦā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻĢāĻ˛ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ§ā§āĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
$ ./test.py --constrain=unit
āĻāĻāĻ¨āĻŋ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ
$ ./test.py --kinds
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§ āĻĢāĻ˛āĻžāĻĢāĻ˛:
Waf: '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¯āĻŧāĻžāĻĢ: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻā§āĻā§ `/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (0.939s)Waf: āĻāĻ¨ā§āĻāĻžāĻ°āĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ `/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
bvt: āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž (āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻ¤ā§)
āĻŽā§āĻ˛: āĻ¸āĻŽāĻ¸ā§āĻ¤ TestSuite-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¨)
āĻāĻĻāĻžāĻšāĻ°āĻŖ: āĻāĻĻāĻžāĻšāĻ°āĻŖ (āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻ¤ā§)
āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸: āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻā§āĻ¸ā§āĻ (āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨)
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ: āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ¸ā§āĻ (āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻāĻ°ā§)
āĻāĻāĻ¨āĻŋāĻ: āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž (āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽā§āĻ˛āĻŋāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§)
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¯ā§āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ --āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĨ¤
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻšāĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ,
$ ./test.py --list
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻ āĻ¨ā§āĻ°ā§āĻĒ
Waf: '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¯āĻŧāĻžāĻĢ: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻā§āĻā§ `/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (0.939s)
āĻŦāĻžāĻ°āĻ˛ā§āĻ
ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻšāĻ¸ā§āĻ¤āĻā§āĻˇā§āĻĒ
ns3-tcp-cwnd
ns3-tcp-āĻāĻ¨ā§āĻāĻžāĻ°āĻ āĻĒāĻžāĻ°ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
āĻĒā§āĻ°āĻ¸āĻā§āĻ
āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻāĻžāĻ˛-āĻļāĻŋāĻāĻž
devices-mesh-dot11s
āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻāĻžāĻ˛
...
āĻŦāĻ¸ā§āĻ¤ā§-āĻ¨āĻžāĻŽ-āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž
āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ
āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻžāĻŦāĻ˛ā§
āĻāĻ¨āĻĢāĻŋāĻ
āĻŦāĻŋāĻļā§āĻŦ-āĻŽāĻžāĻ¨
āĻāĻŽā§āĻ¯āĻžāĻ¨ā§āĻĄ-āĻ˛āĻžāĻāĻ¨
āĻŽā§āĻ˛āĻŋāĻ-āĻāĻ˛ā§āĻŽā§āĻ˛ā§-āĻ¸āĻāĻā§āĻ¯āĻž
āĻ˛āĻā§āĻˇā§āĻ¯
āĻāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¯ā§āĻā§āĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ --āĻ¸ā§āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ¯ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻ C++ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§ -- āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒā§āĻā§āĻˇāĻŋāĻ āĻĒāĻĨāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻāĻŋ
C++ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ā§āĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻ¨ā§āĻāĨ¤ āĻĒā§āĻ°āĻŦā§āĻļāĻ¨
$ ./test.py --example=udp-echo
āĻ¯ā§ āĻāĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§ āĻĢāĻ˛āĻžāĻĢāĻ˛.
PASS: āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ/udp/udp-echo
āĻāĻĒāĻ¨āĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ --āĻŦāĻŋāĻ˛ā§āĻĄāĻĒāĻĨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ
$ ./test.py --buildpath=/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build/debug --example=wifi-simple-adhoc
āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§ --py āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒā§āĻā§āĻˇāĻŋāĻ āĻĒāĻĨ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§
āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻĒā§āĻ°āĻŦā§āĻļāĻ¨
$ ./test.py --pyexample=examples/tutorial/first.py
āĻ¯ā§ āĻāĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻā§āĻā§ āĻĢāĻ˛āĻžāĻĢāĻ˛.
āĻĒāĻžāĻ¸: āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ/āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛/first.py
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ ns-3 āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¯āĻāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻĄā§āĻāĻž āĻ˛ā§āĻā§āĨ¤
āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻŦā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ (āĻ¯ā§āĻŽāĻ¨,
/home/user/ns-3-dev)āĨ¤ āĻāĻāĻ¨ test.py āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ, āĻāĻāĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻĻā§āĻŦāĻŋāĻā§āĻ¨
āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻ¸āĻšāĨ¤ āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŋāĻ¨āĻž
āĻ¤ā§āĻ°ā§āĻāĻŋāĻšā§āĻ¨. āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ a āĻ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ
/tmp/unchecked-traces āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ udp-echo.tr āĻāĻŦāĻ udp-echo-n-1.pcap āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĢāĻžāĻāĻ˛āĨ¤
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž "āĻāĻĻāĻžāĻšāĻ°āĻŖ" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻŦāĻŖā§āĻāĻ¨. āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ -- āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻāĻ˛ā§āĻĒ,
test.py āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¨ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻāĻāĻŋ
āĻļā§āĻ§ā§ āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻ¨ test.py āĻāĻ˛ā§, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻĒāĻ°āĻžāĻāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ --āĻ¨ā§āĻĢ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĨ¤
$ ./test.py --list --nowaf
āĻāĻ° āĻĢāĻ˛ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻ āĻ¨ā§āĻ°ā§āĻĒ:
ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻĒā§āĻ°āĻāĻžāĻ°-āĻā§āĻˇāĻ¤āĻŋ-āĻŽāĻĄā§āĻ˛
ns3-tcp-cwnd
ns3-tcp-āĻāĻ¨ā§āĻāĻžāĻ°āĻ āĻĒāĻžāĻ°ā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ
pcap-āĻĢāĻžāĻāĻ˛-āĻ āĻŦāĻā§āĻā§āĻ
āĻŦāĻ¸ā§āĻ¤ā§-āĻ¨āĻžāĻŽ-āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž
āĻāĻ˛ā§āĻŽā§āĻ˛ā§-āĻ¸āĻāĻā§āĻ¯āĻž-āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°
āĻāĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ Waf āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
test.py āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ Valgrind āĻšāĻ˛ a
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻāĻ˛ā§
āĻŽā§āĻŽāĻā§āĻ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻā§āĻ˛, āĻ¯āĻž āĻŽā§āĻŽāĻ°āĻŋ-āĻā§āĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§, āĻ¸āĻš
āĻļā§āĻ°ā§ āĻ¨āĻž āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž, āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ āĻĒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° (āĻĄāĻŦāĻ˛ āĻĢā§āĻ°āĻŋ,
āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻĒāĻ°ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ˛āĻŋāĻ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻžāĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
-- āĻĒāĻŋāĻˇā§ āĻĢā§āĻ˛āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĨ¤
$ ./test.py --āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ
āĻāĻāĻŋ āĻ¯ā§āĻŽāĻ¨ āĻāĻ˛āĻā§, test.py āĻāĻŦāĻ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻāĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°ā§
āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛. āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻŋāĻā§āĻ¤ā§
āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ (āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§) āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ test.py āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
-- āĻ§āĻ°ā§ āĻ°āĻžāĻāĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¯āĻž āĻāĻ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ°āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ°āĻžāĻāĻž āĻšāĻŦā§
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ testpy-āĻāĻāĻāĻĒā§āĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ āĻ§ā§āĻ¨ā§
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻāĻ¨āĻŋāĻāĻžāĻ°ā§āĻ¸āĻžāĻ˛ āĻāĻžāĻāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¨āĻžāĻŽāĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻ°āĻŋāĻ¨āĻŋāĻ āĻŽāĻŋāĻ¨ āĻ¨āĻžāĻŽā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤
āĻ¸āĻŽāĻ¯āĻŧ)āĨ¤
$ ./test.py -- āĻ§āĻ°ā§ āĻ°āĻžāĻā§āĻ¨
āĻ āĻŦāĻļā§āĻˇā§, test.py āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ -- āĻāĻžāĻ°āĻŦā§āĻ¸ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¯āĻž āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻ¤āĻĨā§āĻ¯ āĻŽā§āĻĻā§āĻ°āĻŖ āĻāĻ°āĻŦā§
āĻāĻ° āĻ āĻā§āĻ°āĻāĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĨ¤ āĻāĻāĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻāĻ˛ā§ āĻāĻāĻŋ āĻāĻ¯āĻŧāĻā§āĻāĻ°āĻāĻžāĻŦā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻā§āĻ˛. āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻāĻāĻĒā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧā§ verbose āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨:
$ ./test.py --verbose
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻŽāĻŋāĻļā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, ns-3 āĻā§āĻ° āĻ¸āĻŦ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
āĻāĻāĻāĻŋ HTML āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄā§āĻ° āĻ āĻ§ā§āĻ¨ā§, āĻāĻžāĻ°ā§āĻŦā§āĻ¸ āĻŽā§āĻĄā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋ
āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
$ ./test.py --verbose --grind --constrain=core --html=results.html
āĻā§āĻ¸ā§āĻ āĻā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¨āĻŽāĻŋ
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤āĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻŽā§āĻāĻžāĻ¤ā§ āĻŦā§āĻā§ āĻŦā§āĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻāĻ°āĻ¤ā§ āĻšāĻŦā§.
¡ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
¡ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž
¡ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ¸ā§āĻ
¡ āĻāĻĻāĻžāĻšāĻ°āĻŖ
¡ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻā§āĻ¸ā§āĻ
āĻāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻšāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻŦāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻŦā§āĻļ āĻāĻžāĻ āĻāĻ°āĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦāĻžāĻ¸
āĻ¤āĻžāĻ°āĻž āĻ¯ā§ āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻāĻŦāĻ āĻ¤āĻžāĻ āĻŽāĻžāĻĒāĻ¸āĻ
BVT-āĻāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤ BVT āĻā§āĻ˛āĻŋ āĻāĻāĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§ āĻŦāĻžāĻ¸ āĻāĻ°ā§ āĻ¯āĻž ns-3 āĻā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤ā§āĻ°āĻŋāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
āĻāĻāĻ āĻā§āĻ¸ā§āĻ
āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻĄāĻŧāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯āĻž āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻ¯āĻžāĻ¯āĻŧ
āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻŦāĻŋāĻā§āĻāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻā§āĻ¨ āĻāĻžāĻ°āĻŖ āĻ¨ā§āĻ
āĻāĻāĻāĻŋ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤āĨ¤ āĻāĻāĻŋ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻ¨āĻŋāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻā§āĻĄ āĻ¨āĻŋāĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻāĻāĻžāĻ°ā§āĻ° āĻšāĻ¯āĻŧ. āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻāĻŽāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯āĻž ns-3 āĻā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻ˛ā§āĻ āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§,
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻĄ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻāĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻŦāĻžāĻ¸ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻĢāĻžāĻāĻ˛
src/core/test/names-test-suite.cc āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤ āĻĢāĻžāĻāĻ˛
src/network/test/pcap-file-test-suite.cc āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ˛ pcap āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻā§āĻāĻ° āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĢāĻžāĻāĻ˛āĨ¤ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ src/network āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§āĻ¸ā§āĻ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻ˛ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻĄāĻŧāĻŋāĻ¤āĨ¤ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ āĻāĻā§
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ˛āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ˛ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤
āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤ āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ¯āĻŧāĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋ
src/āĻĒāĻ°ā§āĻā§āĻˇāĻž. āĻĢāĻžāĻāĻ˛ src/test/ns3tcp/ns3-interop-test-suite.cc āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻāĻŋ ns-3 TCP āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ NSC TCP āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻŦā§
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻā§āĻāĻ°, āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻŦāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, ns3tcp-interop-response-vectors.pcap āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§
TCP āĻšā§āĻĄāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¯āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ ns-3 TCP-āĻāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
NSC TCP āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻĻā§āĻĻā§āĻĒāĻ¨āĻž āĻ¯āĻž āĻāĻāĻāĻŋ ''āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ˛'' āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§ āĻāĻŦāĻ āĻāĻ˛āĻŦā§āĨ¤ āĻāĻŋāĻā§āĻ āĻ¨āĻž
āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ pcap āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§ / tmp -āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻāĻ°āĻž āĻ¯āĻĻāĻŋ
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ (āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧ āĻ¨āĻž) āĻ¤āĻžāĻ°āĻž āĻāĻ āĻ§ā§āĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻāĻ¤ā§āĻ¤ā§āĻ°ā§āĻŖ āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻā§āĻ¸ā§āĻ
āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻ˛ āĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻāĻļ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§
āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ¸āĻā§āĻāĻ¤ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ˛āĻŽāĻžāĻ¨ āĻā§āĻ¸ā§āĻ
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ test.py āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ. āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§
āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ, āĻāĻžāĻ˛āĻžāĻ¨ test.py --help
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ test.py āĻāĻāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§
āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻā§āĻ āĻāĻ°āĻ¤ā§. āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒāĨ¤ āĻā§āĻ¸ā§āĻ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻŦāĻž āĻāĻāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĨ¤
āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ˛ā§āĨ¤
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŦāĻ
āĻāĻāĻžāĻĄāĻŧāĻžāĻ (āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§) āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
$ ./waf --configure --enable-examples --enable-tests
āĻ¤āĻžāĻ°āĻĒāĻ°, ns-3 āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻļā§āĻ§ā§ āĻāĻžāĻ˛āĻžāĻ¨ test.py. test.py -h āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻāĻžāĻŦā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¯āĻž test.py-āĻāĻ° āĻāĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ test.py C++ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° C++ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻ¸āĻ˛ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻāĻāĻŋ
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻāĻĒāĻžāĻ¯āĻŧāĨ¤
āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻā§āĻ¸ā§āĻ
āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ. āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻšāĻ˛ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻā§āĻĄ āĻĨā§āĻā§ āĻŦā§āĻ°āĻŋāĻ ns-3 āĻā§āĻĄ āĻāĻāĻžāĻ
C++ āĻ āĻ˛ā§āĻāĻž āĻāĻŦāĻ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-3 āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻā§āĻĄ āĻāĻŦāĻ
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŦ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨āĨ¤
āĻāĻ° āĻŽā§āĻ˛ āĻāĻžāĻ°āĻŖ test.py āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ
āĻ˛āĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ NS_LOG āĻĒāĻ°āĻŋāĻŦā§āĻļāĻāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¯āĻāĻ¨ test.py āĻāĻ˛ā§āĨ¤ āĻāĻ
āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¨āĻ¯āĻŧāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻĒāĻ¨āĻŋ āĻ˛āĻāĻŋāĻ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĨā§āĻā§ āĻāĻāĻāĻĒā§āĻ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¨ā§ ns-3 āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ā§āĻ° āĻŽāĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨ -- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻ¯āĻŧāĻžāĻĢ. āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻĒ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ ./waf --run "test-runner --help"
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŽāĻ¤ āĻāĻŋāĻā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§
Waf: '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¯āĻŧāĻžāĻĢ: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻā§āĻā§ `/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (0.353s)
--assert: āĻā§āĻ¨ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻļāĻ¨āĻžāĻā§āĻ¤ āĻšāĻ˛ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛ā§āĻā§ āĻ¸ā§āĻāĻĢāĻ˛ā§āĻā§ āĻŦāĻ˛ā§āĻ¨ (āĻ¯ā§āĻŽāĻ¨ assert)
--basedir=dir: āĻŦā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (āĻā§āĻĨāĻžāĻ¯āĻŧ src āĻā§āĻāĻā§ āĻĒāĻžāĻŦā§āĻ¨) ''dir''-āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
--tempdir=dir: āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (āĻā§āĻĨāĻžāĻ¯āĻŧ āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛ āĻā§āĻāĻāĻ¤ā§ āĻšāĻŦā§) ''dir''-āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
--constrain=test-type: ''āĻā§āĻ¸ā§āĻ-āĻāĻžāĻāĻĒ'' āĻāĻžāĻāĻĒā§āĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°ā§āĻ¨
--help: āĻāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§āĻ¨
-- āĻĒā§āĻ°āĻāĻžāĻ°: āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻ°ā§āĻ¨
--āĻ¤āĻžāĻ˛āĻŋāĻāĻž: āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ (āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻĒā§āĻ°āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§)
--out=file-name: āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻā§ ''file-name''-āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
--suite=suite-name: ''suite-name'' āĻ¨āĻžāĻŽā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨
--āĻāĻžāĻ°āĻŦā§āĻ¸: āĻ°āĻžāĻ¨ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻĨāĻžāĻāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻŦā§
āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻŋāĻ¯āĻŧā§ test.py. āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸
āĻŽāĻ§ā§āĻ¯ā§ test.py āĻāĻŦāĻ ns-3. āĻāĻĒāĻ¨āĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤
āĻ¯ā§ āĻāĻžāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¨āĻž ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤ test.py āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻ¤ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻāĻŋāĻ˛
āĻāĻāĻāĻŋ āĻāĻā§āĻā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻ¯āĻŧ
āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¯āĻž āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ test.py-āĻ āĻ¨āĻ¯āĻŧ --āĻāĻžāĻšāĻŋāĻ° āĻāĻ°āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĨ¤ āĻāĻ
āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻ˛āĻā§ āĻāĻŋāĻĄāĻŋāĻŦāĻŋāĨ¤ āĻāĻāĻ¨
āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤, āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻ˛āĻā§āĻāĻ¨ āĻāĻāĻžāĻ¤ā§ āĻŦāĻ˛ā§
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻāĻŽā§āĻāĻžāĻ° āĻĒāĻžāĻ°ā§āĻļā§āĻŦ-āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻā§
(āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§ āĻŦāĻŋāĻ°āĻ¤āĻŋ) āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻĄāĻŋāĻŦāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻŽāĻ¨ āĻāĻŋāĻā§,
$ ./waf āĻļā§āĻ˛
$ cd āĻŦāĻŋāĻ˛ā§āĻĄ/āĻĄāĻŋāĻŦāĻžāĻ/āĻāĻāĻāĻŋāĻ˛āĻ¸
$ gdb āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ°
$ run --suite=global-value --asssert
āĻ¯āĻĻāĻŋ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛-āĻā§āĻ¯āĻžāĻ˛ā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻĢāĻ˛ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§
āĻāĻŦāĻ (āĻā§āĻ¸ āĻ¸ā§āĻ¤āĻ°) āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻĨā§āĻŽā§ āĻ¯āĻžāĻŦā§ NS_TEST_ASSERT_MSG āĻ¯ā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤
āĻ¤ā§āĻ°ā§āĻāĻŋāĨ¤
āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻ˛ --āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻāĻŋāĻā§
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ ns-3 āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§
āĻĄā§āĻāĻž, āĻ¤āĻžāĻ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ test.py āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ˛ā§, āĻĒāĻžāĻāĻĨāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¸āĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§
āĻāĻĒāĻ¨āĻŋ. āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¯āĻŧāĻžāĻĢ, āĻ¤ā§āĻŽāĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻšāĻŦā§
āĻŦā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŦāĻ āĻāĻ°:
$ ./waf --run "test-runner --basedir=`pwd` --suite=pcap-file-object"
āĻāĻ° āĻāĻĒāĻ° ''āĻ āĻā§āĻ°āĻ¸āĻ°'' āĻāĻĻā§āĻ§ā§āĻ¤āĻŋ āĻāĻŋāĻšā§āĻ¨āĻā§āĻ˛āĻŋ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ PWD āĻāĻŽāĻžāĻ¨ā§āĻĄāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻĨā§āĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻā§āĻā§āĻ¨, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻŦā§āĻļ āĻŦā§āĻĻāĻ¨āĻžāĻĻāĻžāĻ¯āĻŧāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŦāĻ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻŦā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻĒāĻ°āĻŽ āĻĒāĻĨ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻžāĻ°āĻŖā§
āĻāĻāĻŋ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦā§āĻ¸āĻĄāĻŋāĻ° āĻŦāĻžāĻĻ āĻĻā§āĻ¨ āĻ¤āĻŦā§ āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻž
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ a āĻā§āĻāĻāĻā§āĻ¨
āĻ¨āĻžāĻŽā§āĻ° āĻĢāĻžāĻāĻ˛ āĻ¸āĻš āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸. āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻ¯āĻŧ, āĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§
āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻāĻĒā§āĻ
āĻ āĻ¨ā§āĻ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛ (āĻ¯ā§āĻŽāĻ¨ pcap āĻĢāĻžāĻāĻ˛) āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧ
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ˛āĻŽāĻžāĻ¨āĨ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĒāĻžāĻāĻĨāĻ¨
āĻā§āĻ¸ā§āĻ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ (test.py) āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻāĻāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ
āĻāĻ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ. āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¯ā§āĻŽāĻ¨, āĻāĻāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻŦāĻŋāĻ°āĻā§āĻ¤āĻŋāĻāĻ° --āĻā§āĻŽā§āĻĒāĻĄāĻŋāĻ°, āĻ¤āĻžāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻ āĻ āĻā§āĻ āĻāĻ°āĻŦā§
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ¨āĻž āĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ. āĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻžāĻŽā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋāĻāĻŽāĻĒāĻŋ
āĻāĻŦāĻ āĻā§āĻŽā§āĻĒ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŋāĻāĻŽāĻĒāĻŋ āĻ¨āĻž āĻā§āĻŽā§āĻĒ āĻāĻāĻž āĻŦāĻžāĻāĻžāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ / tmp -āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§āĨ¤ āĻā§āĻĄ
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž (ns-3) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸āĻŽāĻ¯āĻŧ
(hh.mm.ss) āĻāĻ° āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¨āĻžāĻŽāĨ¤ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¯āĻžāĻ¨ āĻ¯ā§
āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻ¨āĻžāĻŽ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§
/tmp/ns-3.10.25.37.61537845
āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻšāĻā§ āĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻāĻ āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻĢāĻŋāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻāĻŦāĻ āĻ¯ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻĢāĻžāĻāĻ˛ āĻ¤āĻžāĻāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
āĻāĻāĻāĻĒā§āĻā§āĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ āĻšāĻ˛ āĻā§āĻ¸ā§āĻ āĻāĻāĻāĻĒā§āĻ āĻ¯ā§āĻŽāĻ¨ pcap āĻā§āĻ°ā§āĻ¸ āĻ¯āĻž āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻāĻāĻĒā§āĻāĨ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°ā§ āĻāĻā§āĻ˛āĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻŦā§
āĻāĻžāĻ˛āĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻžāĻ˛āĻžāĻ¨ test.py "āĻ°āĻŋāĻā§āĻ¨" āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§:
$ ./test.py -r
āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻāĻĒā§āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ āĻā§āĻ¸ā§āĻāĻĒāĻŋ-āĻāĻāĻāĻĒā§āĻ/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨ of āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻļāĻžāĻ¨ā§āĻ¤āĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻāĻ¤ā§āĻ¤ā§āĻ°ā§āĻŖ āĻšāĻŦā§āĻ¨ āĻ¸ā§āĻāĻžāĻ āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻā§āĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž
āĻĨā§āĻā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻŦāĻ˛āĻā§ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻļā§āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻā§āĻĄ āĻāĻžāĻĄāĻŧāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ¤ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĨā§āĻā§ āĻāĻŋāĻā§ āĻāĻāĻāĻĒā§āĻ, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻŦā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° XML āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ˛āĻŋāĻā§āĻ¨ --āĻāĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻžāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻšāĻŦā§ āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛. āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨,
$ ./waf --run "test-runner --basedir=`pwd` --suite=pcap-file-object --out=myfile.xml"
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĻā§āĻā§āĻ¨ myfile.xml āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§,
pcap-āĻĢāĻžāĻāĻ˛-āĻ āĻŦāĻā§āĻā§āĻ
PcapFile::Open āĻŽā§āĻĄā§ ''w'' āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
PcapFile::Open āĻŽā§āĻĄā§ ''r'' āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
PcapFile::Open āĻŽā§āĻĄā§ ''a'' āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
PcapFileHeader āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
PcapRecordHeader āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
PcapFile āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ˛ pcap āĻĢāĻžāĻāĻ˛ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
āĻĒāĻžāĻ¸
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ 0.00 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ 0.00 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0.00
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ XML āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸ā§āĻŦ-āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻŽā§āĻ˛āĻ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋāĻ āĻāĻāĻāĻŋ āĻ¨āĻ¯āĻŧ
XML āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
XML āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ test.py āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ.
āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻ¤ā§, āĻ¯ā§āĻŽāĻ¨
āĻā§āĻ°ā§āĻ¯āĻžāĻļ: TestSuite ns3-āĻāĻ¯āĻŧāĻžāĻāĻĢāĻžāĻ-āĻšāĻ¸ā§āĻ¤āĻā§āĻˇā§āĻĒ
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ā§āĻā§āĻ¤āĻāĻžāĻŦā§ gdb āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
"-basedir=`pwd`" āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§
baseir āĻšāĻ˛ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ):
$ ./waf --command-template="gdb %s" --run "āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ°āĻžāĻ¨āĻžāĻ°"
Waf: '/home/tomh/hg/sep09/ns-3-allinone/ns-3-dev-678/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¯āĻŧāĻžāĻĢ: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻā§āĻā§ `/home/tomh/hg/sep09/ns-3-allinone/ns-3-dev-678/build'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (0.380s)
GNU gdb 6.8-āĻĄā§āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨
āĻāĻĒāĻŋāĻ°āĻžāĻāĻ (C) 2008 Free Software Foundation, Inc.
L āĻ¸ā§āĻ¨ā§āĻ¸ GPLv3+: GNU GPL āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 3 āĻŦāĻž āĻ¤āĻžāĻ° āĻĒāĻ°ā§http://gnu.org/licenses/gpl.html>
āĻāĻāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°: āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻā§āĻ¨ āĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻāĻŋ āĻ¨ā§āĻāĨ¤ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨ "āĻāĻĒāĻŋ āĻāĻ°āĻž āĻĻā§āĻāĻžāĻ¨"
āĻāĻŦāĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ "āĻāĻ¯āĻŧāĻžāĻ°ā§āĻ¨ā§āĻāĻŋ āĻĻā§āĻāĻžāĻ¨"āĨ¤
āĻāĻ GDB "x86_64-linux-gnu" āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛...
(gdb) r --basedir=`pwd`
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻļā§āĻ°ā§ āĻšāĻā§āĻā§: <..>/build/debug/utils/test-runner --basedir=`pwd`
[libthread_db āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĨā§āĻ°ā§āĻĄ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ]
āĻāĻžāĻšāĻŋāĻ° āĻāĻ°āĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§. file=../src/core/model/type-id.cc, line=138, cond="uid <= m_information.size () && uid != 0"
...
āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻŽāĻ¨:
VALGR: TestSuite āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻŽā§āĻļ-āĻĄāĻ11-āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨
$ ./waf --command-template="valgrind %s --basedir=`pwd` --suite=devices-mesh-dot11s-regression" --āĻ°āĻžāĻ¨ āĻā§āĻ¸ā§āĻ-āĻ°āĻžāĻ¨āĻžāĻ°
āĻļā§āĻ°ā§āĻŖā§ āĻā§āĻ¸ā§āĻāĻ°āĻžāĻ¨āĻžāĻ°
āĻ¯ā§ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛āĻā§āĻ˛āĻŋ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ āĻā§āĻ¸ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ TestRunner āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻŦāĻ°ā§āĻ
āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ
āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ C++ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻā§āĻ¸ā§āĻ āĻ°āĻžāĻ¨āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĨ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ°āĻžāĻ¨āĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻļ āĻ¸āĻšāĻ āĻā§āĻ˛āĻžāĻ¸
āĻ¯ā§ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ āĻĨāĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒāĻžāĻāĻ¯āĻŧāĻž a
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšāĨ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĻā§āĻā§āĻ¨ ns3::TestRunner āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯.
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻāĻ
āĻ¸āĻŦ ns-3 āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ā§ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻāĻāĻŋ
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ°āĻš āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ§āĻ°āĻŖā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°ā§āĨ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤, āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§,
¡ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
¡ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž
¡ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ¸ā§āĻ
¡ āĻāĻĻāĻžāĻšāĻ°āĻŖ
¡ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻŋāĻāĻžāĻāĻāĻŋ TestSuite āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻŦā§āĻļ āĻ¸āĻšāĻ,
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻŽāĻž āĻāĻ°āĻžāĻ° āĻāĻžāĻ¯āĻŧāĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨āĨ¤ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§
āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ TestSuite āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻ¨āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻāĻ āĻĻā§āĻāĻŋ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻĒāĻžāĻ˛āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ test.py āĻāĻāĻāĻŋ ''āĻāĻāĻ¨āĻŋāĻ'' āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽ āĻ¸āĻš, āĻāĻŽāĻžāĻ°-āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ¸ā§āĻ¯ā§āĻ-āĻ¨āĻžāĻŽ.
āĻā§āĻ˛āĻžāĻ¸ MySuite: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ TestSuite
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
MyTestSuite ();
};
MyTestSuite::MyTestSuite ()
: TestSuite ("my-test-suite-name", UNIT)
{
AddTestCase (āĻ¨āĻ¤ā§āĻ¨ MyTestCase);
}
MyTestSuite myTestSuite;
āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻšāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻŦāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻŋāĻ āĻ¸āĻŦ āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§āĻ¯āĻŧ
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻ¨āĻžāĻāĻ°āĻŋāĻāĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻ¸
āĻāĻāĻāĻŋ TestCase āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻĨāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽāĻĄā§āĻ˛
āĻā§āĻ¸ "āĻĢāĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸" āĻāĻŦāĻ "āĻĒā§āĻ°āĻ¤āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ā§ˇ āĻāĻ° āĻŽāĻŋāĻļā§āĻ°āĻŖ
āĻāĻ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¤ā§ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°āĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§āĻ¨
āĻĻā§āĻ¯ DoRun āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻāĻā§āĻ¸ā§āĻāĻā§āĻ¸: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§āĻ¸ā§āĻāĻā§āĻ¸
{
MyTestCase ();
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° DoRun (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
};
MyTestCase ::MyTestCase ()
: āĻā§āĻ¸ā§āĻāĻā§āĻ¸ ("āĻāĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨")
{
}
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
MyTestCase::DoRun (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
NS_TEST_ASSERT_MSG_EQ (āĻ¸āĻ¤ā§āĻ¯, āĻ¸āĻ¤ā§āĻ¯, "āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻž");
}
āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻ¸
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ āĻāĻļ
āĻāĻžāĻ āĻžāĻŽā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§āĻā§āĻ¤ pcap āĻĢāĻžāĻāĻ˛ āĻ¯āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻā§āĻāĻ° āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§; āĻ
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻā§āĻāĻ°ā§āĻ° āĻā§āĻˇāĻŖāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻ§āĻžāĻ°āĻ; āĻāĻŦāĻ
āĻŦā§āĻ§āĻ¤āĻž āĻāĻŦāĻ āĻ¯āĻžāĻāĻžāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĨ¤
āĻāĻ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻā§āĻ˛āĻŋ āĻāĻāĻžāĻ¨ā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻā§āĻā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ TCP āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
āĻĒāĻžāĻāĻ¯āĻŧāĻž src/test/ns3tcp/ pcap āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ˛ā§āĻāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž
ns-3 āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŦā§āĻ§āĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻž āĻāĻŦāĻ
āĻ¤āĻžāĻĻā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĨ¤ āĻŦā§āĻ§ āĻŽāĻĄā§āĻ˛ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻā§ āĻāĻŦāĻ
āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻļāĻ¨, āĻāĻŦāĻ āĻā§āĻ¸ā§āĻāĻŋāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻŽāĻĄā§āĻ˛ āĻŦāĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ āĻŦāĻĻāĻžāĻ¨
ns-3, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻĄ āĻĻāĻŋāĻ¤ā§ āĻŦāĻ˛āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ āĻŦāĻĻāĻžāĻ¨ āĻ¯ā§ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§
āĻ āĻ¨ā§āĻ āĻŦāĻāĻ° āĻ§āĻ°ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˛ā§āĻā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž, āĻ¯āĻžāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻāĻ°ā§ āĻā§āĻ¨ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨ā§āĻ āĻāĻŋāĻ¨āĻž
āĻŽāĻĄā§āĻ˛ āĻ¸āĻ āĻŋāĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻĄ āĻ˛āĻŋāĻāĻŦā§āĻ¨ āĻ¤āĻž āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§
āĻāĻāĻāĻĒā§āĻā§ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻŦā§āĻāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§ āĻāĻŦāĻ
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻ¸ā§āĻŽāĻžāĻ¨āĻžāĨ¤
āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§āĨ¤ āĻāĻ
āĻŦāĻŋāĻāĻžāĻā§, āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤
āĻ¨āĻŽā§āĻ¨āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻāĻā§āĻāĻžāĻ˛
āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ (āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ TestSuite-āĻ āĻāĻāĻāĻŋ TestCase āĻ¯ā§āĻ āĻ¨āĻž āĻāĻ°āĻž), āĻāĻāĻā§āĻ˛āĻŋ
āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻŽāĻ¨ā§ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻĻāĻ°āĻāĻžāĻ°:
¡ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻā§ āĻā§ āĻŦāĻ˛āĻž āĻšāĻŦā§
¡ āĻāĻāĻŋ āĻāĻŋ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻŦā§ (āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ°āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻā§āĻ¸ā§āĻ, āĻāĻāĻ¨āĻŋāĻ āĻā§āĻ¸ā§āĻ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ¸ā§āĻ, āĻŦāĻž
āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž)
¡ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻĄ āĻĨāĻžāĻāĻŦā§ (āĻšāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻŦāĻž āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§
src/test/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ)āĨ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ wscript āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻĄ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°ā§āĻ¨, āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ src/create-module.py āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻļā§āĻ°ā§ āĻŦāĻŋāĻ¨ā§āĻĻā§. āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¯ā§āĻŽāĻ¨ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ create-module.py āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨āĻŽā§āĻ˛āĻ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻžāĻŽāĻ āĻāĻ¨ā§āĻ¯ āĻ°āĻžāĻāĻāĻžāĻ°āĨ¤ āĻāĻāĻĻāĻž
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ°āĻžāĻāĻāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻ test/router-test-suite.cc āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ.
āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻ¨āĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ,
āĻ¯āĻĻāĻŋāĻ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻĒā§āĻ°āĻā§āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤ā§āĻā§āĻāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻ āĻĢāĻžāĻāĻ˛ā§ "āĻ°āĻžāĻāĻāĻžāĻ°" āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¯ā§ āĻŽāĻĄā§āĻ˛. āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻŽā§āĻ˛āĻ āĻ¯ā§āĻŽāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¨āĻžāĻŽāĨ¤
āĻāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° wscript āĻ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
module_test.source = [
'test/router-test-suite.cc',
]
āĻāĻĒāĻ¨āĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻā§āĻāĻžāĻ˛ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ ns-3 "--enable-tests" āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻāĻāĻŋāĻā§ "āĻ°āĻžāĻāĻāĻžāĻ°" āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻžāĻ¨ā§:
RouterTestSuite::RouterTestSuite ()
: TestSuite ("āĻ°āĻžāĻāĻāĻžāĻ°", UNIT)
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨:
$ ./test.py -s āĻ°āĻžāĻāĻāĻžāĻ°
āĻ¨ā§āĻā§āĻ° āĻŽāĻ¤ āĻāĻāĻāĻĒā§āĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤:
āĻĒāĻžāĻ¸: āĻā§āĻ¸ā§āĻāĻ¸ā§āĻāĻ āĻ°āĻžāĻāĻāĻžāĻ°
1āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 1āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (1āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ src/lte/test/test-lte-antenna.cc āĻĻā§āĻā§āĻ¨āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻāĻāĻĒā§āĻ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž
āĻāĻāĻāĻĒā§āĻ āĻāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ src/core/model/test.h.
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§:
NS_TEST_ASSERT_MSG_EQ(āĻĒā§āĻ°āĻā§āĻ¤, āĻ¸ā§āĻŽāĻž, āĻŦāĻžāĻ°ā§āĻ¤āĻž)
NS_TEST_ASSERT_MSG_NE(āĻĒā§āĻ°āĻā§āĻ¤, āĻ¸ā§āĻŽāĻž, āĻŦāĻžāĻ°ā§āĻ¤āĻž)
NS_TEST_ASSERT_MSG_LT(āĻĒā§āĻ°āĻā§āĻ¤, āĻ¸ā§āĻŽāĻž, āĻŦāĻžāĻ°ā§āĻ¤āĻž)
NS_TEST_ASSERT_MSG_GT(āĻĒā§āĻ°āĻā§āĻ¤, āĻ¸ā§āĻŽāĻž, āĻŦāĻžāĻ°ā§āĻ¤āĻž)
NS_TEST_ASSERT_MSG_EQ_TOL(āĻĒā§āĻ°āĻā§āĻ¤, āĻ¸ā§āĻŽāĻž, āĻā§āĻ˛, āĻŦāĻžāĻ°ā§āĻ¤āĻž)
āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻ¸āĻ˛ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŽāĻžāĻ¨, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŽāĻžāĻ¨ āĻ¸ā§āĻŽāĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤
āĻŽāĻžāĻ¨ (āĻ āĻĨāĻŦāĻž āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ¨), āĻāĻŦāĻ āĻļā§āĻˇ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻāĻ.
āĻāĻĒāĻ°ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻ°āĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¸āĻŽāĻ¤āĻž, āĻ āĻ¸āĻŽāĻ¤āĻž, āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŽ āĻŦāĻž āĻ¤āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ āĻāĻĒāĻ°ā§āĻ° āĻĒāĻā§āĻāĻŽ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¸āĻŽāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢā§āĻ˛ā§āĻāĻŋāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¨āĻŽā§āĻŦāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ āĻŦā§āĻāĻ˛ā§āĻĒāĻŋāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°,
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻ°āĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻāĻžāĻ¨āĨ¤
āĻ¸āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ¯āĻžāĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻā§ āĻāĻžāĻšāĻŋāĻ° āĻāĻ°āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻž āĻāĻ°ā§āĻ¨.
āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ (āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ) āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨; āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻĻā§āĻ¯ āĻāĻžāĻšāĻŋāĻ° āĻāĻ°āĻž āĻ°ā§āĻĒāĻā§āĻ˛ā§āĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ¯ā§āĻ an āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ āĻĨā§āĻā§ āĻĻā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ
āĻā§āĻ "āĻ§ā§āĻŽāĻĒāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž" āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻāĻāĻ˛āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ (āĻŦāĻŋāĻ¨āĻž
āĻŽā§āĻŽāĻ°āĻŋ āĻĢāĻžāĻāĻ¸) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ-to-run.py āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĨ¤
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ°āĻžāĻ¨āĻžāĻ°āĨ¤ āĻāĻāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻžāĻ˛
āĻāĻŽāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ¸āĻā§āĻāĻ¤āĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĻā§āĻāĻž
āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ src/lte/āĻĒāĻ°ā§āĻā§āĻˇāĻž/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻāĻ¨ āĻ¯āĻĻā§āĻā§āĻāĻ¤āĻž is āĻāĻĄāĻŧāĻŋāĻ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻāĻāĻāĻĒā§āĻ āĻāĻĒāĻžāĻ¤ā§āĻ¤ āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ a āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ
āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ āĻ¤ā§āĻā§āĻ āĻāĻ¨āĻĒā§āĻ āĻā§āĻā§āĻāĻ° of āĻāĻĒāĻžāĻ¤ā§āĻ¤
āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻ āĻ¤ā§āĻā§āĻ āĻāĻāĻāĻĒā§āĻ āĻāĻĒāĻžāĻ¤ā§āĻ¤
āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¤ā§āĻŽāĻžāĻ° āĻāĻāĻāĻĒā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻĒāĻžāĻ¤ā§āĻ¤
āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ a āĻ¨āĻ¤ā§āĻ¨ ns-3 āĻŽāĻĄā§āĻ˛
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¨āĻāĻļāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻĻāĻāĻžāĻ°āĻŖāĻž ns-3 āĻŽāĻĄā§āĻ˛. āĻ āĻ¨ā§āĻ āĻāĻŦā§āĻˇāĻŖāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§,
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻŦāĻ˛ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻāĻžāĻĒ āĻāĻžāĻāĻ¯āĻŧā§ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ āĻšāĻŦā§āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻāĻāĻāĻŋ āĻ āĻāĻŋāĻ¨āĻŦ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŽā§āĻ˛āĨ¤ āĻāĻŽāĻ°āĻž a āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ ErrorModel āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ
āĻ¸āĻšāĻ ns-3 āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻžāĻŽā§āĻ˛āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛āĻŋāĻā§āĻ āĻāĻŋāĻāĻžāĻŦā§ āĻā§āĻ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŦāĻ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻ¨āĻāĻļāĻž āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨āĨ¤
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨:
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¤ā§āĻ°āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŋāĻā§
āĻ¨āĻāĻļāĻž āĻĒāĻāĻ¨ā§āĻĻ āĻāĻĄāĻŧāĻŋāĻ¤. āĻ¸ā§āĻŦāĻā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻ˛ā§āĻāĻ¨āĻž āĻĒāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻā§āĻāĻŋ āĻŦāĻ˛āĻŦāĻŋāĻā§āĻāĻžāĻ¨
āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ.
āĻ¨āĻāĻļāĻž āĻ āĻāĻŋāĻāĻŽāĻ¨
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨; āĻāĻāĻž āĻāĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤. āĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°ā§āĻ¨:
¡ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž: āĻāĻāĻž āĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤? āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦāĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤?
¡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž: āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻāĻ¤āĻāĻž āĻāĻŽāĻžāĻ° āĻ¨āĻāĻļāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤? āĻāĻŽāĻŋ āĻĨā§āĻā§ āĻā§āĻĄ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ?
ns-2 āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§? āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻĄā§āĻ˛āĻāĻŋāĻā§ āĻ¸āĻāĻšāĻ¤ āĻāĻ°ā§
āĻ āĻ¨ā§āĻāĻ°āĻŖ?
¡ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž: āĻāĻŽāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻĄā§ āĻŦāĻžāĻāĻ°ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŽāĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ (āĻāĻāĻŋ āĻāĻ°āĻ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻāĻ°āĻ¤ā§)? āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻŋ āĻā§āĻ¨ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻĒāĻŋāĻāĻŋ 4 āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¯āĻĻāĻŋ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻāĻāĻĒāĻŋāĻāĻŋ 6 āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ? āĻāĻŽāĻŋ āĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻšāĻŦā§
āĻāĻĻā§ āĻāĻāĻĒāĻŋāĻ¤ā§?
āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻŦāĻŋāĻ§āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž ns-3-āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž or ns-āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻĨāĻžāĻāĻ˛ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻ°ā§āĻ¨āĨ¤
āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ API āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ
āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ°āĻšā§ āĻšāĻ˛ā§ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻāĻžāĻ¨āĻžāĻ¤ā§āĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§
āĻ¸āĻšāĻ¯ā§āĻā§āĻĻā§āĻ°
āĻāĻĻāĻžāĻšāĻ°āĻŖ: āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ ns-2. āĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻ°āĻžāĻˇā§āĻā§āĻ°ā§āĻ¯āĻŧ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž
āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§, āĻāĻāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻĻā§āĻˇāĻŋāĻ¤ āĻāĻŋāĻ¨āĻžāĨ¤ āĻāĻ˛āĻāĻžāĻ°ā§ āĻĒāĻžāĻ°ā§
āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¨ (āĻāĻāĻŋ āĻĢā§āĻ˛ā§ āĻĻāĻŋāĻ¨, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ API āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨, āĻāĻŦāĻ āĻāĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¯āĻž āĻāĻ˛āĻāĻžāĻ°ā§āĻā§ āĻŦāĻ˛ā§ āĻ¯ā§ āĻā§āĻ¨ā§ āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻ¨āĻžāĨ¤ āĻŦāĻŋāĻāĻĻā§āĻ°āĻ
āĻ¯ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāĻ°āĻāĻŋ āĻĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦāĻž āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻā§ "IsCorrupt()" āĻŦāĻ˛āĻŋāĨ¤
āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§:
āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
/ **
* āĻ¯āĻĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋāĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¯ā§āĻā§āĻ¤/āĻĻā§āĻˇā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻ¸āĻ¤ā§āĻ¯ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ
* \param pkt āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¯āĻžāĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ
*/
bool IsCorrupt (Ptr pkt);
};
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ āĻ¨āĻž, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¯āĻĻāĻŋ IsCorrupt() true āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻāĻ¸āĻ˛ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§ āĻ¨āĻž;
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāĻ° āĻĻā§āĻˇāĻŋāĻ¤ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻ° āĻŦāĻŋāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻ āĻāĻžāĻ, āĻ¯ā§āĻŽāĻ¨ āĻāĻ¨ ns-2, āĻ¤āĻžāĻ āĻāĻāĻž āĻ¨āĻž āĻ¯āĻĻāĻŋāĻ
āĻĒāĻ˛āĻŋāĻŽāĻžāĻ°āĻĢāĻŋāĻāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒāĻāĻ¨ā§āĻĻ, āĻāĻŽāĻ°āĻž āĻ§āĻ°ā§ āĻ¨āĻŋāĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻāĻ°āĻŦ
āĻŦāĻŋāĻļā§āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ ErrorModel, āĻ¯ā§āĻŽāĻ¨ RateErrorModel, ListErrorModel, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ, āĻ¯ā§āĻŽāĻ¨
āĻāĻŋāĻ¤āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ ns-2.
āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻžāĻŦāĻā§āĻ¨, "āĻā§āĻ¨ IsCorrupt() āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž?"āĨ¤ āĻāĻāĻžāĻ
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ; āĻ āĻ¨ā§āĻ¯āĻāĻŋ āĻšāĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ¨āĻ¨-āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻ°ā§āĻā§āĻˇ āĻāĻ°āĻž
āĻĒā§āĻ°āĻžāĻāĻā§āĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ (āĻāĻāĻŋ C++ āĻ āĻ¨āĻ¨ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻĄāĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻŦāĻ
āĻā§āĻšā§āĻ¤ ns-3 āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻā§āĻ˛āĻžāĻ¸)āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻŋ āĻāĻāĻĒāĻŋ āĻŦāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤? āĻāĻŽāĻ°āĻž āĻāĻžāĻ āĻ¨āĻž
āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ (āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŽāĻĄā§āĻ˛āĻāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤
āĻ -āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻ), āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§ āĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦāĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻšāĻ˛ āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻŖ āĻāĻ˛ā§āĻĒāĻ¨āĻž
āĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ NetDevice āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸ā§āĻāĻžāĻ°, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒāĨ¤:
/ **
* PointToPointNetDevice-āĻ āĻāĻāĻāĻŋ āĻ°āĻŋāĻ¸āĻŋāĻ āĻāĻ°āĻ°āĻŽāĻĄā§āĻ˛ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨āĨ¤
*
* PointToPointNetDevice āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ ErrorModel āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
* āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ°āĻŋāĻ¸āĻŋāĻ āĻā§āĻāĻ¨āĨ¤
*
* @ErrorModel āĻĻā§āĻā§āĻ¨
* @param em Ptr āĻ ErrorModel.
*/
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° PointToPointNetDevice::SetReceiveErrorModel(Ptr) em);
āĻāĻŦāĻžāĻ°, āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻāĻ¨ā§āĻĻ āĻ¨āĻ¯āĻŧ (āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŽāĻĄā§āĻ˛āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻŦāĻā§āĻā§āĻ), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ āĻāĻ°ā§, āĻ¯āĻž āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¸āĻĢāĻ˛ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ, NetDevice āĻ¸ā§āĻ¤āĻ°ā§āĨ¤
āĻāĻŋāĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¤āĻžāĻāĻžāĻ¨ ns-2 āĻā§āĻĄ, āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŽā§āĻ¨āĻž API āĻāĻā§
āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻ¯āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
ErrorModel ();
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ~ErrorModel ();
bool IsCorrupt (Ptr pkt);
void āĻ°āĻŋāĻ¸ā§āĻ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
void āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
void āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
bool IsEnabled (void) const;
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ DoCorrupt (Ptr pkt) = 0;
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ void DoReset (void) = 0;
};
enum ErrorUnit
{
EU_BIT,
EU_BYTE,
EU_PKT
};
// āĻā§āĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¯ā§āĻā§āĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨
// āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŦāĻŋāĻ¤āĻ°āĻŖ, āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšāĻžāĻ°, āĻāĻŦāĻ āĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻŋāĻāĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻ°ā§āĻ āĻāĻ°āĻ°āĻŽāĻĄā§āĻ˛: āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
RateErrorModel ();
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ~ RateErrorModel ();
enum ErrorUnit GetUnit (void) const;
void SetUnit (enum ErrorUnit error_unit);
āĻĄāĻŦāĻ˛ GetRate (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) const;
void SetRate (āĻĄāĻŦāĻ˛ āĻ°ā§āĻ);
void SetRandomVariable (const RandomVariable &ranvar);
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ DoCorrupt (Ptr pkt);
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° DoReset (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
};
āĻāĻžāĻ°āĻž
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤; āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻŦāĻŋ āĻāĻā§
āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻŦāĻž āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻā§āĻ¯āĻŧā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻ°āĻŽāĻ¤āĻžāĻ˛āĻŋāĻāĻž. āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ (āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨) āĻšāĻ˛ āĻāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻŦāĻ
āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒāĻ°āĻŋāĻĒāĻā§āĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻļāĻĻāĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ āĻ¨ā§āĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻšā§āĻāĻā§, āĻŦāĻž
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŦā§ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻ -āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻāĻā§āĻāĻžāĻ˛āĨ¤ āĻāĻāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻžāĻ˛
āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ āĻŦāĻŋāĻļāĻĻāĻā§āĻ˛āĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ āĻā§āĻ¯āĻžāĻ¸ āĻāĻ°ā§āĻ¨, āĻŦāĻ°āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻžāĻŽā§āĻŦ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻā§āĻāĻžāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ API āĻāĻŦāĻ āĻĒāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ āĻŋāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ.
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻŦā§āĻ¨
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ°āĻ° āĻŽāĻĄā§āĻ˛āĻāĻŋ verbatim āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¸ā§āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻāĻ°ā§āĻˇ āĻšāĻŦā§
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛āĨ¤ ErrorModel āĻāĻŋāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻ°ā§āĻĒāĻ°ā§āĻāĻž āĻ¨āĻŋāĻā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻžāĻ¨āĻŋāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻĻā§āĻ¯ ns-3 āĻā§āĻĄāĻŋāĻ āĻļā§āĻ˛ā§ āĻĻāĻ˛āĻŋāĻ˛
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻ°āĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§ āĻāĻŦāĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻā§āĻĄāĻŋāĻ āĻļā§āĻ˛ā§ āĻ¨āĻĨāĻŋ, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻĨāĻž āĻāĻžāĻŦāĻā§āĻ¨āĨ¤ āĻā§āĻĄāĻŋāĻ āĻļā§āĻ˛ā§
āĻ¨āĻĨāĻŋāĻāĻŋ āĻŽā§āĻ˛ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻĒā§āĻˇā§āĻ āĻž āĻĨā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: ns-3 āĻāĻāĻ¨āĻ¸āĻāĻā§āĻ°āĻš āĻļā§āĻ˛ā§.
āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¨ āĻā§āĻĨāĻžāĻ¯āĻŧ in āĻĻā§āĻ¯ āĻā§āĻ¸ āĻāĻžāĻ āĻĻā§āĻ¯ āĻŽāĻĄā§āĻ˛ āĻāĻāĻŋāĻ¤ āĻŦāĻžāĻ¸ āĻāĻ°āĻž
āĻ¸āĻŦ ns-3 āĻŽāĻĄā§āĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻā§ src /. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻž āĻāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°ā§āĻ¤ā§ āĻāĻāĻŋ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛ āĻā§āĻĄ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ°āĻžāĻāĻž āĻŦā§āĻ§āĻāĻŽā§āĻ¯ āĻšāĻ¯āĻŧ
āĻŽāĻ§ā§āĻ¯ā§ src / āĻā§āĻĨāĻžāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦāĻŋāĻ˛ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ.
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻŦ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻ āĻ°ā§āĻĨāĻĒā§āĻ°ā§āĻŖ
āĻāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ src/āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ/ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻāĻžāĻ¨ā§ ns-3 āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻŦāĻ wscript
ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ Waf āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻšāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ ns-3 Waf āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨. āĻāĻ
āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ wscript āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻ˛ā§āĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻāĻžāĻ˛āĻŋ āĻĢāĻžāĻāĻ˛ error-model.h āĻāĻŦāĻ error-model.cc āĻĻāĻŋāĻ¯āĻŧā§, āĻāĻŦāĻ āĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
src/network/wscript. āĻāĻāĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻŦāĻžāĻāĻŋ .cc āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°
āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛, āĻāĻŦāĻ .h āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨, āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒāĻĒ āĻāĻĒ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ "./test.py" āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¤ā§āĻŽāĻžāĻ° āĻāĻžāĻā§āĻāĻž āĻāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ
āĻāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻā§āĨ¤
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻžāĻ°ā§āĻĄ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻ° āĻāĻŋāĻā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ°āĻā§āĻˇāĻŋāĻŦāĻžāĻšāĻŋāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĨ¤:
#ifndef ERROR_MODEL_H
#ERROR_MODEL_H āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨
...
#endif
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3
ns-3 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-3 āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻĨā§āĻā§ āĻāĻ° āĻāĻŋāĻšā§āĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ°āĻ¤ā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻžāĻŦā§ ns-3 cc āĻāĻŦāĻ h āĻāĻāĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ā§āĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ āĻŦā§āĻ˛āĻāĨ¤:
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
...
}
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻŋāĻā§ āĻāĻā§āĻāĻžāĻ˛ āĻĢāĻžāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
#ifndef ERROR_MODEL_H
#ERROR_MODEL_H āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
} // āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3
#endif
āĻ¯āĻāĻ¨ error-model.cc āĻĢāĻžāĻāĻ˛ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
# "error-model.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
} // āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3
āĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¸āĻ˛ā§ āĻā§āĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¨ā§āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤
āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§āĻ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨āĨ¤
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻŋāĻā§ āĻāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻāĻŋ, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
āĻā§āĻ˛āĻžāĻ¸, āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻš āĻĒāĻ°ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻĨā§āĻā§ āĻĻā§āĻ¯ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸?
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻāĻļāĻž āĻĒāĻĻāĻā§āĻˇā§āĻĒ; āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻāĻŋāĻ¨āĻž āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ ns-3 āĻ āĻŦāĻā§āĻā§āĻ-āĻŽāĻĄā§āĻ˛, āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛āĻžāĻ¸
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻžāĻ¨:
¡ āĻĻā§āĻ¯ ns-3 āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻĻā§āĻā§āĻ¨)
āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻā§āĻ˛āĻžāĻ¸ Ptr)
āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ āĻ āĻŦāĻā§āĻā§āĻāĻŦā§āĻ¸} āĻāĻĒāĻ°ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻž
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¨āĨ¤ āĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ āĻĨā§āĻā§ āĻāĻĻā§āĻā§āĻ¤ RefCountBase āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¨
āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻŖāĻ¨āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĨ¤
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻā§āĻ˛āĻžāĻ¸ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻĒāĻ°ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋāĻ° āĻŦā§āĻāĻ˛ā§āĻĒāĻŋāĻ ns-3 āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻ°āĻŦā§
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨.
āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻŦā§
āĻā§āĻĄāĻŧā§ āĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° ns-3 āĻĒāĻžāĻŦāĻ˛āĻŋāĻ API, āĻ¤āĻžāĻ āĻā§āĻ˛āĻžāĻ¸ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§āĻ˛āĻžāĻ¸
āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻŦā§āĻ¯āĻŧāĻžāĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻā§āĻ¨
āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§ āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
#ifndef ERROR_MODEL_H
#ERROR_MODEL_H āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨
# "ns3/object.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛: āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
ErrorModel ();
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ~ErrorModel ();
};
āĻā§āĻ˛āĻžāĻ¸ āĻ°ā§āĻ āĻāĻ°āĻ°āĻŽāĻĄā§āĻ˛: āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
RateErrorModel ();
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ~ RateErrorModel ();
};
#endif
āĻāĻāĻžāĻ¨ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻŦāĻ¸ā§āĻ¤ā§. āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ ns-3 āĻāĻāĻž āĻ¯āĻĻāĻŋ āĻšāĻ¯āĻŧ
āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻš-āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤, āĻāĻāĻŋ āĻā§āĻ¨ā§ āĻĒāĻžāĻĨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻ āĻ¤āĻāĻŦ, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž ErrorModel āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻāĻŋ src/core/model āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž
āĻļā§āĻ§ā§ āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻ¤āĻžāĻŽ"# āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ "object.h"āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ src/āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ/āĻŽāĻĄā§āĻ˛, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ āĻŦāĻļā§āĻ¯āĻ
āĻāĻāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ "# āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ "ns3/object.h"". āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ¯āĻžāĻ¯āĻŧā§ˇ
āĻā§āĻˇāĻŖāĻž
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻŽā§āĻŽā§āĻŦāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻ˛āĻž āĻšāĻŦā§ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°).
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻāĻŦāĻ āĻĄā§āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°āĻā§ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻž āĻāĻžāĻ˛ā§ āĻ§āĻžāĻ°āĻŖāĻž
āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ¤āĻžāĻĻā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ§ā§āĻŦāĻāĻ¸āĻāĻžāĻ°ā§āĻā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻ°ā§āĨ¤ C++ āĻ, āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋāĻāĻŋāĻ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨
āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻāĻĒāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¨āĻž āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻĻāĻŋāĻ
C++ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¸ā§āĻāĻ āĻŽā§āĻ¯āĻŧāĻžāĻ°ā§āĻ¸ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ C++ āĻŦāĻāĻ¤ā§āĨ¤ āĻāĻāĻā§āĻŽ 45āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻāĻ¨ .cc āĻĢāĻžāĻāĻ˛ā§ āĻāĻŋāĻā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻāĻā§āĻāĻžāĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻā§āĻĄ āĻĻā§āĻāĻŋāĨ¤:
# "error-model.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3 {
NS_OBJECT_ENSURE_REGISTERED (ErrorModel);
TypeId ErrorModel::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::ErrorModel")
.SetParent ()
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
ErrorModel ::ErrorModel ()
{
}
ErrorModel ::~ErrorModel ()
{
}
NS_OBJECT_ENSURE_REGISTERED (RateErrorModel);
TypeId RateErrorModel::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::RateErrorModel")
.SetParent ()
.AddConstructor ()
;
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ tid;
}
RateErrorModel::RateErrorModel ()
{
}
RateErrorModel::~RateErrorModel ()
{
}
āĻāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°) āĻĢāĻžāĻāĻļāĻ¨? āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨
TypeId āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤ āĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§
āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻ āĻĒā§āĻ¯āĻžāĻ°ā§āĻ¨ā§āĻ) āĻāĻāĻŋ āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§ āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻžāĻ āĻžāĻŽā§ (āĻ ā§āĻ¯āĻžāĻĄāĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°).
āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ NS_OBJECT_ENSURE_REGISTERED (āĻļā§āĻ°ā§āĻŖāĻŋāĻ° āĻ¨āĻžāĻŽ) āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻāĻāĻŦāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ GetTypeId āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻĒā§āĻ°āĻā§āĻ¤ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ. āĻ āĻŦāĻā§āĻā§āĻ-āĻŽāĻĄā§āĻ˛ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻāĻŋ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¸ā§āĻĻā§āĻ§ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻ˛āĻāĻŋāĻ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž
āĻāĻāĻžāĻ¨ā§, āĻ˛ā§āĻāĻž a āĻŦāĻŋāĻ āĻ¸āĻŽā§āĻŦāĻ¨ā§āĻ§ā§ āĻ¯ā§āĻ |ns3| āĻ˛āĻāĻŋāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻŦāĻŋāĻāĻĻā§āĻ°āĻ āĻ¯ā§ LOG_COMPONENT_DEFINE is
āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻŦāĻžāĻšāĻŋāĻ°ā§ āĻĻā§āĻ¯ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ ns3
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻāĻžāĻ°ā§, āĻāĻžāĻ˛āĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ āĻ¨ā§āĻā§āĻ¤āĻŋ
āĻāĻžāĻŦāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽā§āĻ˛ā§āĻ¯āĻŦā§āĻ§, āĻā§āĻŖāĻžāĻŦāĻ˛ā§)
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ 1
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ a āĻ¨āĻŽā§āĻ¨āĻž āĻ˛āĻŋāĻĒāĻŋ
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻā§āĻ āĻāĻĒāĻ°ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻŽā§āĻ˛āĻŋāĻ āĻāĻžāĻ°āĻž āĻ¨āĻŋāĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻ§āĻžāĻĒāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻāĻāĻ¨ āĻĒā§āĻ˛āĻžāĻŽā§āĻŦāĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŦāĻ āĻā§āĻ¨ā§ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻŦāĻž API āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ¨āĻž āĻ¤āĻžāĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¤ā§āĻ°āĻŋ āĻāĻāĻŋ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ā§, āĻāĻŽāĻ°āĻž āĻāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¤ā§āĻ°āĻŋāĻ¤ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦ
ErrorModels āĻ¨āĻŋāĻā§āĻ°āĻžāĻāĨ¤
āĻŦāĻŋāĻā§āĻāĻžāĻĒāĻ¨ āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž in āĻĻā§āĻ¯ āĻļā§āĻ°ā§āĻŖā§
/* point-to-point-net-device.h */
āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛;
/ **
* āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻā§āĻ¨ā§āĻ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
*/
Ptr m_receiveErrorModel;
āĻŦāĻŋāĻā§āĻāĻžāĻĒāĻ¨ āĻ ā§āĻ¯āĻžāĻāĻ¸ā§āĻ¸āĻ°
āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
PointToPointNetDevice::SetReceiveErrorModel (Ptr em)
{
NS_LOG_FUNCTION (āĻāĻ << em);
m_receiveErrorModel = em;
}
.AddAttribute ("ReceiveErrorModel",
"āĻĒā§āĻ¯āĻžāĻā§āĻ āĻšāĻžāĻ°āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ°āĻŋāĻ¸āĻŋāĻāĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛",
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§ (),
MakePointerAccessor (&PointToPointNetDevice::m_receiveErrorModel),
MakePointerChecker ())
āĻāĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
void PointToPointNetDevice::āĻ°āĻŋāĻ¸āĻŋāĻ (Ptr āĻĒā§āĻ¯āĻžāĻā§āĻ)
{
NS_LOG_FUNCTION (āĻāĻ << āĻĒā§āĻ¯āĻžāĻā§āĻ);
uint16_t āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ = 0;
āĻ¯āĻĻāĻŋ (m_receiveErrorModel && m_receiveErrorModel->IsCorrupt (āĻĒā§āĻ¯āĻžāĻā§āĻ) )
{
//
// āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻšāĻžāĻ°āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ
// āĻĻā§āĻˇāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻāĻŋ āĻ¯ā§āĻ¤ā§ āĻĻāĻŋāĻ¨āĨ¤
//
m_dropTrace (āĻĒā§āĻ¯āĻžāĻā§āĻ);
}
āĻāĻ°
{
//
// āĻ°āĻŋāĻ¸āĻŋāĻ āĻā§āĻ°ā§āĻ¸ āĻšā§āĻ āĻāĻŋāĻĒā§āĻ¨, āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻā§-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻšā§āĻĄāĻžāĻ° āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨
// āĻāĻŦāĻ āĻāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤
//
m_rxTrace (āĻĒā§āĻ¯āĻžāĻā§āĻ);
āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻšā§āĻĄāĻžāĻ° (āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛);
m_rxCallback (āĻāĻ, āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, GetRemote ());
āĻ¯āĻĻāĻŋ (!m_promiscCallback.IsNull ())
{ m_promiscCallback (āĻāĻ, āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻĒā§āĻ°ā§āĻā§āĻāĻ˛, GetRemote (),
GetAddress (), NetDevice::PACKET_HOST);
}
}
}
āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ āĻ˛āĻŋāĻĒāĻŋ
/* simple-error-model.cc */
// āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
// āĻāĻŽāĻ°āĻž āĻ¨ā§āĻĄ 3 āĻāĻ° NetDevice āĻ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ
// āĻāĻŽāĻ°āĻž āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻāĻŦāĻ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ NetDevice-āĻ āĻāĻāĻāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ˛ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
// āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
Ptr nd3 = PointToPointTopology::GetNetDevice
(n3, āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛2);
Ptr em = āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ ();
nd3->SetReceiveErrorModel (em);
bool,
ErrorModel ::DoCorrupt (āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ āĻĒāĻŋ)
{
NS_LOG_FUNCTION;
NS_LOG_UNCOND("āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋāĻā§āĻ°āĻ¸ā§āĻ¤!");
āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻĢāĻŋāĻ°ā§;
}
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¤ā§āĻā§āĻ ErrorModel āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋāĻ¤ā§ āĻĒā§āĻ˛āĻžāĻŽā§āĻŦ āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
PointToPointNetDevice āĻāĻ° āĻĒāĻĨāĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§ "āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋāĻā§āĻ°āĻ¸ā§āĻ¤!" āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯
āĻ¨ā§āĻĄ n3 āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĨ¤ āĻāĻ°āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ°āĻĢāĻ°ā§āĻŽ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŋ
āĻāĻ°ā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛āĻŋāĻ.
āĻŦāĻŋāĻā§āĻāĻžāĻĒāĻ¨ a āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸
āĻ¤ā§āĻā§āĻ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ ErrorModel āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻŋāĻā§ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ (āĻĻā§āĻ°ā§āĻ¨ā§āĻ¤āĻŋāĻā§āĻ°āĻ¸ā§āĻ¤ () āĻāĻŦāĻ āĻ°āĻŋāĻ¸ā§āĻ ()), āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§
āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ BasicErrorModel āĻŦāĻ˛āĻŋ āĻ¯āĻž āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§
āĻĻā§āĻ¯ ns-2 ErrorModel āĻā§āĻ˛āĻžāĻ¸ (in ns-2/queue/errmodelā§ˇcc,h}).
āĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻāĻ āĻāĻā§ āĻāĻžāĻ? āĻāĻŽāĻ°āĻž āĻāĻžāĻ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻ¤ā§āĻā§āĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ ErrorModel-āĻāĻ° āĻ§āĻ°āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¨
āĻ¨ā§āĻāĻĄāĻŋāĻāĻžāĻāĻ¸āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¯ā§āĻā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻ āĻāĻžāĻāĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ:
¡ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¯āĻž āĻā§āĻˇāĻ¤āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻāĻ¨āĻŋāĻĢāĻ°ā§āĻŽ āĻā§āĻ¯āĻžāĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛)
¡ āĻā§āĻ°āĻžāĻ¨ā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋāĻ° āĻāĻāĻ¨āĻŋāĻ (āĻŦāĻŋāĻ, āĻŦāĻžāĻāĻ, āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻ¸āĻŽāĻ¯āĻŧ) āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¯āĻžāĻ° āĻāĻĒāĻ°ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§
āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
¡ āĻāĻĒāĻ°ā§āĻ° āĻāĻāĻ¨āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻšāĻžāĻ° (āĻ¯ā§āĻŽāĻ¨ 10^-3) āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž
āĻāĻŖāĻŋāĻāĻž
¡ āĻ¸āĻā§āĻˇāĻŽ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž (āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸āĻā§āĻˇāĻŽ)
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸
āĻāĻŽāĻ°āĻž āĻŦā§āĻ¸āĻŋāĻ āĻāĻ°āĻ°āĻŽāĻĄā§āĻ˛āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻŋ:
āĻā§āĻ˛āĻžāĻ¸ āĻŦā§āĻ¸āĻŋāĻ āĻāĻ°āĻ°āĻŽāĻĄā§āĻ˛: āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛
{
āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
...
āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤:
// āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ DoCorrupt (Ptr āĻĒāĻŋ);
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ DoReset (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
...
}
āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ TypeId āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸ā§āĻ āĻāĻ°ā§ āĻ¸āĻžāĻŦāĻā§āĻ˛āĻžāĻ¸ GetTypeId āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ
āĻ āĻāĻŋāĻāĻžāĻŦāĻāĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨:
TypeId RateErrorModel::GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ TypeId tid = TypeId ("ns3::RateErrorModel")
.SetParent ()
.AddConstructor ()
...
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻŽā§āĻ˛ āĻāĻžāĻ°ā§āĻ¯āĻžāĻŦāĻ˛ā§ āĻāĻŦāĻ āĻāĻāĻ āĻā§āĻ¸ā§āĻ
āĻāĻžāĻšāĻŋāĻ° āĻāĻ°āĻž āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§
āĻ˛ā§āĻāĻž āĻāĻāĻ āĻā§āĻ¸ā§āĻ
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ a āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ ns-3
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨, āĻ¤āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻ¸āĻā§āĻā§ āĻŽāĻŋāĻ˛āĻŋāĻ¤ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻžāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛
āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻŦā§āĻˇāĻāĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻžāĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§ ns-3.
āĻ§āĻžāĻĒ 0 - āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸
āĻ¸āĻŦ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ src āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻ¯ā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻ¨āĻžāĻŽ āĻāĻā§. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻ āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§:
src/āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ. āĻāĻŽāĻ°āĻž āĻĨā§āĻā§ āĻāĻĻā§āĻ§ā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛āĨ¤
āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒāĻŋāĻāĻžāĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻžāĻ āĻžāĻŽā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§:
src /
āĻŽāĻĄāĻŋāĻāĻ˛-āĻ¨āĻžāĻŽ/
āĻŦāĻžāĻāĻ§āĻžāĻ/
āĻĄāĻ/
āĻāĻĻāĻžāĻšāĻ°āĻŖ/
wscript
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§/
āĻŽāĻĄā§āĻ˛/
āĻĒāĻ°ā§āĻā§āĻˇāĻž /
āĻāĻĻāĻžāĻšāĻ°āĻŖ-to-run.py
wscript
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻāĻŦā§ āĻ¨āĻžāĨ¤
āĻ§āĻžāĻĒ 1 - āĻ¸ā§āĻˇā§āĻāĻŋ a āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻā§āĻāĻžāĻ˛
āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻā§āĻ¸ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻžāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ āĻāĻ˛ā§āĻāĻ¨āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻ§āĻ°ā§ āĻ¨ā§āĻŦ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĨ¤ āĻĨā§āĻā§ src āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
$ ./create-module.py new-module
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, cd āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛; āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĒāĻžāĻŦā§āĻ¨:
$cd new-module
s ls
āĻĄāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻšāĻāĻžāĻ°ā§ āĻŽāĻĄā§āĻ˛ āĻā§āĻ¸ā§āĻ wscript
āĻāĻ°ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§, create-module.py āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§
āĻāĻā§āĻāĻžāĻ˛ wscript, .h, .cc āĻāĻŦāĻ .āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°. āĻāĻā§āĻāĻžāĻ˛ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ
āĻāĻāĻžāĻ° āĻŽāĻ¤:
src /
āĻ¨āĻ¤ā§āĻ¨-āĻŽāĻĄāĻŋāĻāĻ˛/
āĻĄāĻ/
new-module.rst
āĻāĻĻāĻžāĻšāĻ°āĻŖ/
new-module-example.cc
wscript
āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§/
new-module-helper.cc
new-module-helper.h
āĻŽāĻĄā§āĻ˛/
new-module.cc
new-module.h
āĻĒāĻ°ā§āĻā§āĻˇāĻž /
new-module-test-suite.cc
wscript
(āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻŦāĻžāĻāĻ§āĻžāĻ/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻ§āĻžāĻĒ 0 āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§
āĻŦāĻŋāĻ˛ā§āĻĄ.)
āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛āĻŦāĨ¤ āĻ¤āĻĨā§āĻ¯ āĻĻāĻŋāĻā§āĻā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¯āĻž
āĻĻā§āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ wscript āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°. āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻšāĻžāĻāĻāĻž āĻšāĻŦā§
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻĻāĻā§āĻˇā§āĻĒ.
āĻ¸āĻŦ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§āĨ¤ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž
āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ wscript āĻĢāĻžāĻāĻ˛ (āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°ā§, āĻāĻ˛āĻžāĻĻāĻž āĻ¨āĻ¯āĻŧ wscript
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ!) āĻāĻā§āĻāĻžāĻ˛ā§ wscript āĻāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻŦā§
āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻŦā§ (āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻā§):
def āĻŦāĻŋāĻ˛ā§āĻĄ (āĻŦāĻŋāĻāĻ˛āĻĄāĻŋ):
āĻŽāĻĄāĻŋāĻāĻ˛ = bld.create_ns3_module('new-module', ['core'])
āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ, āĻāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž, āĻāĻŦāĻ aodv āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒāĻ°ā§
āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻž wscript āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻ¤ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§:
def āĻŦāĻŋāĻ˛ā§āĻĄ (āĻŦāĻŋāĻāĻ˛āĻĄāĻŋ):
āĻŽāĻĄāĻŋāĻāĻ˛ = bld.create_ns3_module('āĻ¨āĻ¤ā§āĻ¨-āĻŽāĻĄāĻŋāĻāĻ˛', ['āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ', 'āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ', 'aodv'])
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ
āĻā§āĻ°; āĻĻā§āĻ¯ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĒāĻžāĻ˛āĻžāĻā§āĻ°āĻŽā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻā§āĻ°.
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻŽāĻĄā§āĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻā§āĻāĻžāĻ˛ (āĻ¯āĻž āĻšāĻŦā§
āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛) āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ model/new-module.cc āĻāĻŦāĻ model/new-module.h.
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¯āĻĻāĻŋ āĻšā§āĻ˛ā§āĻĒāĻžāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¤ā§ āĻ¯āĻžāĻŦā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§/
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ; āĻāĻŦāĻžāĻ°, āĻ¸ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻā§āĻāĻžāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ āĻā§āĻ¯āĻžāĻ¸āĨ¤ āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ āĻŦāĻļā§āĻ¯āĻ āĻšāĻŦā§
āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ā§ āĻā§āĻšā§āĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ ns-3 āĻā§āĻ¸ āĻāĻžāĻāĨ¤ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻžāĻ˛
āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻāĻŦāĻ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž / āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻā§āĻāĻžāĻ˛ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻ āĻšāĻŦā§
āĻ¨ā§āĻā§āĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§, āĻ¯āĻž āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛, āĻ¸āĻā§āĻā§ āĻāĻāĻāĻŋ
āĻā§āĻ˛āĻžāĻ¸ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤ āĻāĻāĻ āĻā§āĻ¸ā§āĻ āĻā§āĻ¸ NewModuleTestCase1:
NewModuleTestSuite::NewModuleTestSuite ()
: TestSuite ("āĻ¨āĻ¤ā§āĻ¨-āĻŽāĻĄāĻŋāĻāĻ˛", UNIT)
{
AddTestCase (āĻ¨āĻ¤ā§āĻ¨ NewModuleTestCase1);
}
āĻ§āĻžāĻĒ 3 - āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻā§āĻ¸ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¤ā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤
wscript āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻā§āĻ¸āĻ āĻāĻĄāĻŋāĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻŽāĻĄāĻŋāĻāĻ˛, src/āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ/wscript āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻš āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ āĻĢāĻžāĻāĻ˛:
def āĻŦāĻŋāĻ˛ā§āĻĄ (āĻŦāĻŋāĻāĻ˛āĻĄāĻŋ):
āĻŽāĻĄāĻŋāĻāĻ˛ = bld.create_ns3_module('āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ', ['āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ', 'āĻĒā§āĻ°āĻāĻžāĻ°', 'āĻ ā§āĻ¯āĻžāĻ¨ā§āĻā§āĻ¨āĻž', 'āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨'])
module.source = [
'model/spectrum-model.cc',
'model/spectrum-value.cc',
.
.
.
'model/microwave-oven-spectrum-value-helper.cc',
'helper/spectrum-helper.cc',
'helper/adhoc-aloha-noack-ideal-phy-helper.cc',
'helper/waveform-generator-helper.cc',
'helper/spectrum-analyzer-helper.cc',
]
āĻāĻ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĢāĻ˛ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ¤ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻŦā§,
āĻ¯āĻž āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻļā§āĻ˛ āĻā§āĻ¨ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻžāĻŦāĻ˛āĻŋāĻ API āĻļāĻŋāĻāĻŦā§? āĻĒāĻĄāĻŧāĻ¤ā§!
āĻ§āĻžāĻĒ 4 - āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻĒā§āĻ°āĻāĻžāĻļā§āĻ¯ āĻļāĻŋāĻ°ā§āĻ˛ā§āĻ āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ āĻāĻŦāĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯āĻāĻžāĻ°ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ API āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤
āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ wscript āĻĢāĻžāĻāĻ˛.
āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻā§āĻāĻŋ āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻŽāĻĄā§āĻ˛ āĻāĻ˛āĻžāĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨, āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸ā§āĻ¤āĻŦāĻ āĻ¸āĻā§āĻā§. (āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¯ā§āĻā§āĻ¤āĻŋ bld āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻ˛ā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻĨā§āĻā§
āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻšā§āĻĄāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ ns-3 āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ):
āĻšā§āĻĄāĻžāĻ° = bld (āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯='ns3header')
headers.module = 'āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ'
headers.source = [
'model/spectrum-model.h',
'model/spectrum-value.h',
.
.
.
'model/microwave-oven-spectrum-value-helper.h',
'helper/spectrum-helper.h',
'helper/adhoc-aloha-noack-ideal-phy-helper.h',
'helper/waveform-generator-helper.h',
'helper/spectrum-analyzer-helper.h',
]
āĻāĻāĻāĻžāĻŦā§ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¸āĻš āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§āĻ˛ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻšāĻŦā§
āĻŽāĻ¤ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ
# "ns3/spectrum-model.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšā§āĻĄāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻž
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯
# "my-module-implementation.h" āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻ§āĻžāĻĒ 5 - āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻā§āĻ¸ā§āĻ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĨāĻžāĻā§, āĻ¤āĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ wscript āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻžāĻāĻ˛
āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻā§āĻ¸āĻ āĻāĻĄāĻŋāĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻŽāĻĄā§āĻ˛ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸ā§āĻ¤āĻŦāĻ āĻ¸āĻā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
module_test = bld.create_ns3_module_test_library('āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ')
module_test.source = [
'test/spectrum-interference-test.cc',
'test/spectrum-value-test.cc',
]
āĻĻā§āĻ āĻā§āĻ¸ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻ¸ āĻāĻŋāĻāĻžāĻŦā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻ§āĻžāĻĒ 6 - āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ/wscript
āĻĢāĻžāĻāĻ˛ (āĻāĻā§āĻāĻžāĻ˛ āĻāĻĒ-āĻ˛ā§āĻā§āĻ˛ wscript recursively āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ/wscript āĻļā§āĻ§ā§ āĻ¯āĻĻāĻŋ
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤)
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻŽāĻĄā§āĻ˛ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻāĻžāĻšāĻ°āĻŖ src/spectrum/examples/wscript āĻ¸āĻā§āĻā§
def āĻŦāĻŋāĻ˛ā§āĻĄ (āĻŦāĻŋāĻāĻ˛āĻĄāĻŋ):
obj = bld.create_ns3_program('adhoc-aloha- ideal-phy',
['āĻ¸ā§āĻĒā§āĻāĻā§āĻ°āĻžāĻŽ', 'āĻŽā§āĻŦāĻŋāĻ˛āĻŋāĻāĻŋ'])
obj.source = 'adhoc-aloha-ideal-phy.cc'
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ create_ns3_program() āĻšāĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§; āĻāĻŦāĻžāĻ°, āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ in
āĻā§āĻ°āĻŽāĻ¤āĻžāĻ˛āĻŋāĻāĻž. āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨, āĻāĻŦāĻ āĻ¯āĻžāĻ āĻāĻ¯āĻŧāĻžāĻĢ
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻžāĻ āĻ āĻ¨ā§āĻŽāĻžāĻ¨.
āĻŽāĻžāĻā§ āĻŽāĻžāĻā§, āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨
āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¤ā§āĻ¸:
obj = bld.create_ns3_program('āĻ¨āĻ¤ā§āĻ¨-āĻŽāĻĄāĻŋāĻāĻ˛-āĻāĻĻāĻžāĻšāĻ°āĻŖ', [āĻ¨āĻ¤ā§āĻ¨-āĻŽāĻĄāĻŋāĻāĻ˛])
obj.source = ['new-module-example.cc', 'new-module-example-part.cc']
āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ
āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¤āĻŋ register_ns3_script() āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
bld.register_ns3_script('new-module-example.py', ['new-module'])
āĻ§āĻžāĻĒ 7 - āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ as āĻā§āĻ¸ā§āĻ
āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻāĻŋāĻ āĻāĻĒāĻāĻ°āĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ§āĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸āĻŦ āĻ¨āĻž
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻĢāĻžāĻāĻ˛ test/examples-to-run.py āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ˛ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻžāĻ˛ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¤ āĻŽāĻĄā§āĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ test.py āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
src/spectrum/test/examples-to-run.py C++ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāĻ¨ā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĻā§āĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ:
# C++ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĨāĻžāĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
# āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ tuple āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§
#
# (āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ, do_run, do_valgrind_run)āĨ¤
#
# āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ test.py āĻĻā§āĻā§āĻ¨āĨ¤
cpp_examples = [
("āĻ ā§āĻ¯āĻžāĻĄāĻšāĻ-āĻāĻ˛ā§āĻšāĻž-āĻāĻĻāĻ°ā§āĻļ-āĻĢāĻŋ", "āĻ¸āĻ¤ā§āĻ¯", "āĻ¸āĻ¤ā§āĻ¯"),
("āĻ ā§āĻ¯āĻžāĻĄāĻšāĻ-āĻāĻ˛ā§āĻšāĻž-āĻāĻĻāĻ°ā§āĻļ-āĻĢāĻžāĻ-āĻāĻ¯āĻŧāĻžāĻāĻĨ-āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¯āĻŧā§āĻ-āĻāĻā§āĻ¨", "āĻā§āĻ°ā§", "āĻā§āĻ°ā§"),
("āĻ ā§āĻ¯āĻžāĻĄāĻšāĻ-āĻāĻ˛ā§āĻšāĻž-āĻāĻĻāĻ°ā§āĻļ-āĻĢāĻžāĻ-āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸-āĻĒā§āĻ°āĻāĻžāĻ°-āĻā§āĻˇāĻ¤āĻŋ-āĻŽāĻĄā§āĻ˛", "āĻ¸āĻ¤ā§āĻ¯", "āĻ¸āĻ¤ā§āĻ¯"),
]
# āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĨāĻžāĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
# āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ tuple āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§
#
# (āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ, āĻāĻ°āĻŦā§āĻ¨_āĻ°āĻžāĻ¨)āĨ¤
#
# āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ test.py āĻĻā§āĻā§āĻ¨āĨ¤
python_examples = [
("sample-simulator.py", "True"),
]
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° C++ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻŋāĻĒāĻ˛ (āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ, do_run, do_valgrind_run), āĻā§āĻĨāĻžāĻ¯āĻŧ
¡ āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¯ā§āĻā§āĻ¯,
¡ do_run āĻāĻāĻāĻŋ āĻļāĻ°ā§āĻ¤ āĻ¯āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŦāĻ
¡ do_valgrind_run āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻ°ā§āĻ¤āĨ¤ (āĻāĻ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻ°āĻŖ NSC āĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻŦā§āĻ§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻ¤āĻžāĻ°āĻž
āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤)
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻĻā§āĻāĻŋ āĻļāĻ°ā§āĻ¤ āĻšāĻ˛ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
("tcp-nsc-lfn", "NSC_ENABLED == āĻ¸āĻ¤ā§āĻ¯", "NSC_ENABLED == āĻŽāĻŋāĻĨā§āĻ¯āĻž"),
āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻŋāĻĒāĻ˛ āĻĨāĻžāĻā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ,
do_run), āĻ¯ā§āĻāĻžāĻ¨ā§, C++ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯,
¡ āĻāĻĻāĻžāĻšāĻ°āĻŖ_āĻ¨āĻžāĻŽ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§, āĻāĻŦāĻ
¡ do_run āĻāĻāĻāĻŋ āĻļāĻ°ā§āĻ¤ āĻ¯āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯.
āĻāĻŦāĻžāĻ°, āĻļāĻ°ā§āĻ¤āĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ,
("realtime-udp-echo.py", "ENABLE_REAL_TIME == āĻŽāĻŋāĻĨā§āĻ¯āĻž"),
āĻ§āĻžāĻĒ 8 - āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¯āĻžāĻ¤ā§ āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻā§āĻ¯āĻžāĻļā§ wscript āĻĢāĻžāĻāĻ˛, āĻŦāĻž
āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻŋāĻ˛ā§āĻĄā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻžāĨ¤
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
$ ./test.py
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ (āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻĨāĻžāĻā§) āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻ¸āĻā§āĻˇāĻŽ) āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻāĻĒā§āĻā§āĨ¤
āĻ§āĻžāĻĒ 9 - āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ§āĻžāĻ
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻā§āĻāĻŋāĻ, āĻāĻŦāĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻāĻ°ā§āĻā§
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻ§ā§āĻ¯ā§ create-module.py āĻ˛āĻŋāĻĒāĻŋ.
# bld.ns3_python_bindings()
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ (āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻĨāĻ¨ ns-3 āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
C++ ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ), āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ°ā§āĻ°āĻāĻŋ āĻāĻ¨āĻāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
Python API āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ¯āĻ¤ā§āĻ° āĻāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§) āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨
ns-3 āĻĻā§āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§: āĻāĻā§āĻ¸āĻĒā§āĻāĻŋāĻāĻ°āĻŋ "āĻāĻāĻāĻžāĻ°-āĻāĻžāĻāĻĄ"-āĻ¸ā§āĻāĻžāĻāĻ˛ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ, āĻāĻŦāĻ
āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨āĨ¤
"āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻāĻžāĻāĻĄ" āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻšāĻžāĻ¤ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§ˇ reStructuredText āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ (.āĻĒā§āĻ°āĻĨāĻŽ), āĻ¯āĻž āĻšāĻ˛ā§
āĻĒāĻžāĻāĻĨāĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ¤ āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸ āĻāĻ¯āĻŧā§āĻŦ āĻĒā§āĻ āĻāĻŦāĻ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§āĨ¤
API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĨā§āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻā§āĻ¸āĻŋāĻā§āĻ¨, āĻā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§
āĻā§āĻ°āĻ¸ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻāĻ¯āĻŧā§āĻŦ āĻĒā§āĻāĨ¤ āĻāĻ āĻĻā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ: āĻ¸ā§āĻĢāĻŋāĻā§āĻāĻ¸ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻā§āĻ¨
āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻāĻžāĻ°āĻāĻŋāĻ; API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻĻā§āĻ¯āĻŧ, āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻā§āĻ° āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ
āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻā§āĻļāĻ¨ ns-3.
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§:
$ ./waf āĻĄāĻā§āĻ¸
āĻāĻ°ā§ āĻŦāĻŋāĻļā§āĻˇ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒāĻĄāĻŧā§āĻ¨.
āĻĻāĻ˛āĻŋāĻ˛ āĻ¸āĻā§āĻā§ āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸
āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻ¨āĻāĻļāĻž āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§ āĻāĻā§āĻ¸āĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻĒāĻĄāĻŧāĻā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ. āĻĻā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§ āĻā§āĻ¸ āĻ˛āĻŋāĻā§āĻ
āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°ā§āĻāĻ āĻŋāĻ¤ āĻĒāĻžāĻ ā§āĻ¯ āĻāĻ¤ā§āĻ¸ āĻĻā§āĻāĻžāĻŦā§āĨ¤
āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ§āĻžāĻĒ āĻ˛āĻžāĻā§ (āĻ¨ā§āĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§):
1āĨ¤ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨ āĻā§āĻĨāĻžāĻ¯āĻŧ? āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛(āĻā§āĻ˛āĻŋ) āĻ˛āĻžāĻāĻ āĻšāĻŦā§āĨ¤
2. āĻ˛āĻŋāĻāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻˇā§āĻ āĻž āĻĨā§āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĨ¤
3. āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ Makefile āĻ¨āĻžāĻŽāĻ.
āĻā§āĻĨāĻžāĻ¯āĻŧ?
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨, foo āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŋāĻ¤āĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ src/foo/doc/āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ
src/foo/doc/foo.rst āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ°ā§āĻˇ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¨āĻĨāĻŋ āĻšāĻŦā§āĨ¤ āĻĻā§āĻ¯
src/create-module.py āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤
āĻāĻŋāĻā§ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ .āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻāĻ˛, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨; āĻāĻ āĻ¸āĻŦ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§
src/foo/doc/ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĄāĻā§āĻ¸ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ Sphinx Makefile āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻāĻ¨ā§āĻ¯
āĻāĻĄāĻŧāĻŋāĻ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ Makefile āĻ¨āĻžāĻŽāĻ āĻŽāĻ§ā§āĻ¯ā§ src/foo/doc/
āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (āĻļā§āĻā§āĻ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ)āĨ¤
āĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§āĨ¤
āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻāĻžāĻ§āĻŋāĻ āĻŽāĻĄā§āĻ˛ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤; āĻĻā§āĻ¯ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ. āĻāĻŋāĻ¤āĻ°ā§
āĻāĻ āĻŽāĻžāĻŽāĻ˛āĻž āĻ¯ā§āĻ .āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻāĻ˛ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻ/āĻŽāĻĄā§āĻ˛/āĻā§āĻ¸/ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ˛āĻŋāĻāĻ
āĻ¸ā§āĻĢāĻŋāĻāĻ¸āĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§. āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄā§āĻ˛
āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§ āĻŽāĻĄā§āĻ˛ āĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨
doc/models/source/index.rst
.. āĻāĻāĻā§āĻ°āĻŋ::
: āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻāĻā§āĻ°āĻ¤āĻž: 1
āĻ¸āĻāĻāĻ āĻ¨
āĻ ā§āĻ¯āĻžāĻ¨āĻŋāĻŽā§āĻļāĻ¨
āĻļā§āĻā§āĻ
aodv
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨
...
āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻĨāĻŋāĻ° āĻ¨āĻžāĻŽ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (āĻŦā§āĻ¯āĻ¤ā§āĻ¤ .āĻĒā§āĻ°āĻĨāĻŽ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨) āĻāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧāĨ¤ āĻ°āĻžāĻā§āĻ¨
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻŋāĻ āĻ¸āĻšāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻ°ā§āĻŖāĻžāĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ āĻā§āĻ°āĻŽā§ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻŽāĻĄā§āĻ˛ āĻāĻ°ā§āĻ¨ā§ˇ
Makefile āĻ¨āĻžāĻŽāĻ
āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻĨāĻŋāĻāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĻāĻŋāĻ¤ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ Makefile āĻ¨āĻžāĻŽāĻ, āĻ¤āĻžāĻ āĻāĻ°āĻž āĻāĻāĻž āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ā§
āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻŽāĻĄā§āĻ˛ āĻŦāĻ āĻŽā§āĻāĻĢāĻžāĻāĻ˛ āĻšāĻ¯āĻŧ āĻĄāĻ/āĻŽāĻĄā§āĻ˛/āĻŽā§āĻāĻĢāĻžāĻāĻ˛, āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻ Makefile āĻšāĻ¯āĻŧ
āĻĄāĻ/āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛/āĻŽā§āĻāĻĢāĻžāĻāĻ˛.
# āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄā§āĻ˛ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ .rst āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻ°ā§āĻ¨ āĻ¯āĻž $SOURCETEMP-āĻ āĻāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¸ā§āĻ¤ā§āĻ° = \
source/conf.py \
āĻā§āĻ¸/_āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ \
source/index.rst \
source/replace.txt \
source/organization.rst \
...
$(SRC)/antenna/doc/source/antenna.rst \
...
āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ .āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻāĻ˛ āĻāĻ¤ā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻĒāĻĄāĻŧā§āĻ¨
Makefile āĻ¨āĻžāĻŽāĻ āĻā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻĢāĻžāĻāĻ˛ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§āĨ¤ āĻāĻŦāĻžāĻ°, āĻāĻ āĻ°āĻžāĻā§āĻ¨
āĻŦāĻ°ā§āĻ¨āĻžāĻ¨ā§āĻā§āĻ°āĻŽā§.
āĻāĻŦāĻ¨ āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸ āĻĄāĻā§āĻ¸
āĻ¸ā§āĻĢāĻŋāĻāĻ¸ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻĢāĻŋāĻāĻā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨:
$ ./waf āĻ¸ā§āĻĢāĻŋāĻāĻā§āĻ¸
āĻļā§āĻ§ā§ āĻŽāĻĄā§āĻ˛ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§:
$ āĻŽā§āĻ -āĻ¸āĻŋ āĻĄāĻ/āĻŽāĻĄā§āĻ˛
āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĻā§āĻāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ doc/models/build/html.
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ¸ā§āĻĢāĻŋāĻāĻ¸ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ āĻŽā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻžāĻ°ā§āĻā§āĻ āĻ¸āĻŦ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻāĻāĻĒā§āĻ āĻĢāĻ°ā§āĻŽ, āĻ¯āĻž ns-3 āĻŽāĻžāĻ˛ā§āĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻšāĻ¯āĻŧ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛, āĻāĻ āĻĒāĻžāĻ¤āĻž āĻāĻāĻ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛, āĻāĻŦāĻ
āĻĒāĻŋāĻĄāĻŋāĻāĻĢ (āĻā§āĻˇā§āĻ°) āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĒā§āĻˇā§āĻ āĻž āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻ˛āĻā§āĻˇā§āĻ¯:
$ make -C doc/models html
āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¤ā§ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻāĻŽ (āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ°) āĻāĻŽāĻžāĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¤ā§āĻŽāĻžāĻ° āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻāĻāĻŋāĨ¤
āĻ°ā§āĻĒā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§, āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻžāĨ¤ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ (āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŦāĻāĻŦāĻ
LaTeX āĻĨā§āĻā§), āĻ¯āĻž āĻā§āĻ¨ āĻ¸ā§āĻĢāĻŋāĻā§āĻāĻ¸ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻļā§āĻ§ā§ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻāĻāĻāĻŋāĻāĻŽāĻāĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ˛āĻ āĻ¸āĻ¤āĻ°ā§āĻāĻŦāĻžāĻ°ā§āĻ¤āĻž or āĻā§āĻ˛.
ns-3 āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ
āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻ āĻāĻŋāĻāĻžāĻŦāĻāĻ¸āĻāĻŦāĻāĻ§ā§āĻ¯āĻŧ āĻŦā§āĻļ āĻāĻžāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¸āĻŋāĻāĻā§āĻ˛āĻŋ āĻ¨āĻāĻ˛ āĻāĻ°āĻŦ āĻ¨āĻž
āĻāĻāĻžāĻ¨ā§, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻž ns-3.
āĻāĻ āĻĻā§āĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¨āĻĨāĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨:
.. āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤:: replace.txt
.. āĻšāĻžāĻāĻ˛āĻžāĻāĻ:: cpp
āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžāĻāĻ¨ āĻāĻŋāĻā§ āĻ¸āĻšāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻžāĻāĻĒāĻŋāĻ |ns3| āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°ā§
ns-3. āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻžāĻˇāĻžāĻā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§
āĻĢāĻžāĻāĻ˛, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ āĻŋāĻ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ (āĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ āĻ¸āĻŽā§āĻāĻŦ
āĻāĻāĻāĻŋ āĻāĻāĻ āĻā§āĻĄ āĻŦā§āĻ˛āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻžāĻˇāĻž, āĻ¨ā§āĻā§ āĻĻā§āĻā§āĻ¨āĨ¤)
¡ āĻŦāĻŋāĻāĻžāĻ:
āĻ¸ā§āĻĢāĻŋāĻāĻ¸ āĻŦāĻŋāĻāĻžāĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻŦā§āĻļ āĻāĻĻāĻžāĻ°āĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ
āĻ āĻ¨ā§āĻā§āĻ°āĻŽ:
.. āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻā§āĻ°āĻŽ:
------------- āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ
************* āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ (#.#)
============= āĻāĻĒāĻ§āĻžāĻ°āĻž (#.#.#)
############## āĻāĻĒ-āĻāĻĒāĻ§āĻžāĻ°āĻž
āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻšāĻžāĻāĻ˛āĻžāĻāĻāĻŋāĻ:
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻšāĻžāĻāĻ˛āĻžāĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻ°ā§āĻ¸āĻā§āĻĄ āĻŦā§āĻ˛āĻ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨:
â ââââââââââââââââââââââââââââââââââââ
âSphinx āĻāĻ¤ā§āĻ¸ â āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ â
â ââââââââââââââââââââââââââââââââââââ
â â āĻĻ āĻĢā§āĻ°āĻŦāĻ¨āĻŋāĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ: â
â ``Frobnitz`` āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°ā§:: â â
â â Foo::Frobnitz frob; â
â Foo::Frobnitz frob; â frob.Set (...); â
â frob.Set (...); â â
â âââââââââââââââââââââââââââââââââââ
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻšāĻžāĻāĻ˛āĻžāĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻā§āĻ°ā§ āĻāĻāĻžāĻ¤ āĻļā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ:
â ââââ
âSphinx āĻāĻ¤ā§āĻ¸ â āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ â
â ââââ¤
â â â
â .. āĻ¸ā§āĻ°ā§āĻ¸āĻā§āĻĄ:: bash â $ls â
â â â
â $ls â â
â ââââ
¡ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋ:
āĻāĻ āĻļāĻ°ā§āĻāĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
âââââââââââââââââââââââââââââââââ
âSphinx āĻāĻ¤ā§āĻ¸ â āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻāĻĒā§āĻ â
ââââââââââââââââââââââââââââââŧââââââŧââââ
â â ns-3 â
â |ns3| â â
ââââââââââââââââââââââââââââââŧââââââŧââââ
â â ns-2 â
â |ns2| â â
ââââââââââââââââââââââââââââââŧââââââŧââââ
â â â
â |āĻā§āĻ| â â
ââââââââââââââââââââââââââââââŧââââââŧââââ
â â āĻāĻ¨ā§āĻ¯ RFC 6282 â
â :rfc:`6282` â â
ââââââââââââââââââââââââââââââ´â
āĻĻāĻ˛āĻŋāĻ˛ āĻ¸āĻā§āĻā§ āĻ āĻā§āĻ¸āĻŋāĻā§āĻ¨
āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻ āĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ°āĻžāĻāĻāĻ¯ā§āĻā§āĻ¯ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨āĨ¤ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯:
¡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ¸āĻžāĻ°āĻ¸āĻāĻā§āĻˇā§āĻĒ āĻā§āĻŦāĻŋāĻ˛āĨ¤
āĻ¸āĻŦ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻšāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ° āĻā§āĻ°āĻžāĻĢāĨ¤
āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§āĻ° āĻ˛āĻŋāĻā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĨ¤
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ° āĻ˛āĻŋāĻā§āĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻ¨ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ˛āĻŋāĻā§āĻāĨ¤
¡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻā§āĻ°ā§āĻĒāĻŋāĻ, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸āĨ¤
āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
¡ āĻĻā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻ āĻĒāĻĨ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
¡ āĻ¯ā§ āĻā§āĻ¨ā§ āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻ°ā§āĻĒ āĻāĻ°āĻžāĻ¸āĻš āĻāĻ°ā§āĻĒ āĻāĻ°āĻž āĻ āĻāĻŋāĻāĻžāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤āĨ¤
¡ āĻ¯ā§ āĻā§āĻ¨ā§ āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻŋāĻšā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ¤ā§āĻ¸āĨ¤
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§, āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻā§āĻāĻā§āĨ¤ āĻāĻāĻž
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ āĻā§āĻ°āĻ¸ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻžāĻāĻ˛, āĻā§āĻ˛āĻžāĻ¸, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻšāĻ¯āĻŧ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻļā§āĻ˛ā§
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻļā§āĻ˛ā§ āĻšāĻ˛ JavaDoc āĻļā§āĻ˛ā§:
/ **
* āĻāĻ āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
* āĻ¸āĻāĻ˛āĻā§āĻ¨ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻ āĻ āĻ¨ā§āĻā§āĻā§āĻĻā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧāĨ¤
*
* āĻĻā§āĻ°ā§āĻ āĻŦāĻŋāĻŦāĻ°āĻŖ, āĻĒā§āĻ°āĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻšāĨ¤
*
* āĻĢāĻžāĻāĻāĻž āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻĨāĻ āĻ āĻ¨ā§āĻā§āĻā§āĻĻ.
*
* āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻā§ āĻāĻ°ā§, āĻā§ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§āĻ¨āĨ¤
* āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻ āĻāĻŦāĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĨ¤
*
* \note āĻ¯ā§āĻā§āĻ¨ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻŦāĻž āĻā§āĻāĻž āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
*
* (āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻš āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻž āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨:)
* \param foo āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻļā§āĻˇā§āĻ¯ āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļ āĻāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤
* \param āĻŦāĻžāĻ° āĻ¨ā§āĻ āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļ, āĻāĻŦāĻ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛āĨ¤
* \return āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻļā§āĻˇā§āĻ¯ āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļ āĻŽāĻžāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤
*
* \ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ
*
* āĻāĻĒāĻ¨āĻŋ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻŦāĻŋāĻļāĻĻ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
* āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦā§āĻāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ āĻ¨āĻž
* āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
*/
āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ āĻļā§āĻ˛ā§āĻ¤ā§ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻŦā§āĻ˛āĻ āĻĻā§āĻāĻŋ `*' āĻ āĻā§āĻˇāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ: / **, āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻŦā§
āĻāĻāĻā§āĻŽ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§.
āĻāĻāĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤:
/** āĻ§ā§āĻŦāĻāĻ¸āĻāĻžāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ */
void DoDispose ();
int m_count; //!< āĻāĻŖāĻ¨āĻž ...
āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻļā§āĻˇ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻŦāĻŋāĻļā§āĻˇ āĻ°ā§āĻĒāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨, //!, āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ āĻŦā§āĻāĻžāĻ¯āĻŧ
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽ.
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻāĻŋāĻā§ āĻāĻāĻā§āĻŽ:
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŽā§āĻ˛āĻ§āĻ¨ āĻ¸āĻš āĻŦāĻžāĻā§āĻ¯ā§āĻ° āĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
¡ āĻŦāĻŋāĻ°āĻžāĻŽ āĻāĻŋāĻšā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦāĻžāĻā§āĻ¯ āĻŦāĻž āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļā§āĻ° āĻļā§āĻˇā§ `.'
¡ āĻĻā§āĻ¯ \āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ; āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻžāĻā§āĻ¯āĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻŦā§
āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻāĻžāĻāĻĒāĻĄā§āĻĢ, āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛, āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻāĻāĻŋāĻ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¯āĻž āĻāĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ API āĻāĻ āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨
ns-3, āĻ¯ā§āĻŽāĻ¨ src/ /āĻŽāĻĄā§āĻ˛/*, src/ /āĻ¸āĻšāĻžāĻ¯āĻŧāĻ/* āĻāĻŦāĻ src/ /āĻāĻāĻāĻŋāĻ˛āĻ¸/*.
āĻāĻāĻā§āĻŽ āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ src/ /āĻĒāĻ°ā§āĻā§āĻˇāĻž/* āĻāĻŦāĻ src/ /āĻāĻĻāĻžāĻšāĻ°āĻŖ/* āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ,
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯
āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻžāĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ¨āĻĨāĻŋāĻ° āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻšāĻŦā§, (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž)āĨ¤
1. āĻŦā§āĻ¸ āĻā§āĻ˛āĻžāĻ¸ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨āĨ¤
2. āĻ¸āĻžāĻŦ āĻā§āĻ˛āĻžāĻ¸ āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨āĻšā§āĻ°āĻŋāĻā§āĻĄ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¸āĻš:
// āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°āĻ¸ā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻļā§āĻ¨ā§āĻ¯ FooBar (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ int BarFoo (āĻĄāĻžāĻŦāĻ˛ āĻŦāĻžāĻ);
āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻā§āĻ˛āĻŋ āĻšā§āĻŦāĻšā§ āĻŽāĻŋāĻ˛āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻžāĻ āĻāĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž; āĻĻā§āĻāĻž GetTypeId, āĻ¨ā§āĻā§, āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯.
āĻāĻŦāĻ¨ āĻ āĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻ¸
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻ:
$./waf āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨
āĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¯āĻž āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŦāĻŋāĻāĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻ¸āĻŦ āĻāĻāĻā§āĻŽ, āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¸ā§āĻĒāĻˇā§āĻ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŦā§āĻ˛āĻ āĻ¨āĻž āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻāĻā§
āĻ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻāĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻĻāĻŽāĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻāĻžāĻŦ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§
āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻāĻāĻĒā§āĻā§āĨ¤
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻ¨ āĻāĻāĻā§āĻŽāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻšāĻā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĨ¤ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
doc/doxygen.warnings.report.sh āĻ˛āĻŋāĻĒāĻŋ:
$doc/doxygen.warnings.report.sh
āĻāĻ¯āĻŧāĻžāĻĢ: 'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
...
Waf: āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž 'āĻŦāĻŋāĻ˛ā§āĻĄ'
'āĻŦāĻŋāĻ˛ā§āĻĄ' āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ (3m24.094s)
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻš āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻ¸ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ... āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨
----------------------------------------
(āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŖāĻ¨āĻž āĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻŽāĻžāĨ¤)
āĻŽāĻĄāĻŋāĻāĻ˛/āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž:
āĻāĻžāĻāĻ¨ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
----------------------------------------
3844 src/lte/āĻŽāĻĄā§āĻ˛
1718 src/wimax/āĻŽāĻĄā§āĻ˛
1423 āĻāĻ¸āĻāĻ°āĻ¸āĻŋ/āĻā§āĻ°/āĻŽāĻĄā§āĻ˛
....
138 āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĨ¤
----------------------------------------
15765 āĻŽā§āĻ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻš 126āĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
āĻĢāĻžāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž (āĻŦāĻ°ā§āĻŖāĻžāĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ)
āĻāĻžāĻāĻ¨ā§āĻ āĻĢāĻžāĻāĻ˛
----------------------------------------
17 āĻĄāĻ/āĻāĻ¨āĻā§āĻ°ā§āĻ¸ā§āĻĒā§āĻā§āĻā§āĻĄ-āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨.āĻāĻāĻ
15āĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ/routing/manet-routing-compare.cc
26 āĻāĻĻāĻžāĻšāĻ°āĻŖ/āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨/wifi-example-apps.h
....
----------------------------------------
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻš 967 āĻĢāĻžāĻāĻ˛
āĻĢāĻžāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž (āĻ¸āĻāĻā§āĻ¯āĻžāĻ¸ā§āĻāĻ)
āĻāĻžāĻāĻ¨ā§āĻ āĻĢāĻžāĻāĻ˛
----------------------------------------
374 src/lte/model/lte-asn1-header.h
280 src/lte/model/lte-rrc-sap.h
262 src/lte/model/lte-rrc-header.h
....
----------------------------------------
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻš 967 āĻĢāĻžāĻāĻ˛
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻžāĻ°āĻžāĻāĻļ
----------------------------------------
126āĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
967 āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ
ā§§āĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻĻā§āĻāĻžāĻ¤ā§ āĻāĻŦāĻ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻ āĻ˛ā§āĻāĻžāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻāĻā§ a āĻ āĻ¨ā§āĻ āĻ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻāĻā§āĻŽ. āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨āĻāĻŋ
āĻŽāĻĄāĻŋāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻ°ā§ src/*/*, āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻŦāĻ°ā§āĻŖāĻžāĻ¨ā§āĻā§āĻ°āĻŽāĻŋāĻ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻ¤ āĻā§āĻ°āĻŽā§āĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ¯ā§āĻā§āĻ¯ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯,
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° -h āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻŦāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨
āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ˛āĻ, āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻā§ āĻ¨āĻž āĻāĻ°ā§āĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ "āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°" āĻ¸āĻš āĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻāĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ -s āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻĒāĻ¨āĻŋ āĻĨā§āĻā§ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
*/āĻāĻĻāĻžāĻšāĻ°āĻŖ/* āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ° (-e āĻŦāĻŋāĻāĻ˛ā§āĻĒ), āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž */āĻĒāĻ°ā§āĻā§āĻˇāĻž/* āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ° (-t).
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ -m , āĻ¯āĻž
āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻā§ āĻļā§āĻ§ā§ āĻĢāĻžāĻāĻ˛ āĻŽā§āĻ˛ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°āĻŦā§ src/ /*, āĻāĻŦāĻ āĻ¸āĻā§āĻā§ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨
āĻĒā§āĻ°āĻā§āĻ¤ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ˛āĻžāĻāĻ¨āĨ¤ āĻ¸āĻā§āĻā§ āĻŽā§āĻļāĻž eth āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻ¸āĻ¤āĻ°ā§āĻāĻŦāĻžāĻŖā§ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ°ā§āĻ°āĻŋ:
$doc/doxygen.warnings.report.sh -m mesh/helper
...
āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸āĻžāĻ°āĻžāĻāĻļ
----------------------------------------
1āĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
3 āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ
ā§§āĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž
āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž
========================================
src/mesh/helper/dot11s/dot11s-installer.h:72: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: ns3::Dot11sStack āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯ m_root (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/dot11s/dot11s-installer.h:35: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ ns3::Dot11sStack::GetTypeId āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ
src/mesh/helper/dot11s/dot11s-installer.h:56: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ ns3::Dot11sStack::InstallStack āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ
src/mesh/helper/flame/lfame-installer.h:40: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: ns3::FlameStack āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯ GetTypeId() (āĻĢāĻžāĻāĻļāĻ¨) āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/flame/flame-installer.h:60: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻžāĻāĻĒ ns3::FlameStack::InstallStack āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ
src/mesh/helper/mesh-helper.h:213: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯ m_nāĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻā§āĻ˛āĻžāĻ¸ ns3::MeshHelper āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/mesh-helper.h:214: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: ns3::MeshHelper āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯ m_spreadChannelPolicy (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/mesh-helper.h:215: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯ m_stack (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻā§āĻ˛āĻžāĻ¸ ns3::MeshHelper āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/mesh-helper.h:216: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯ m_stackFactory (āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻā§āĻ˛āĻžāĻ¸ ns3::MeshHelper āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
src/mesh/helper/mesh-helper.h:209: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ ns3::MeshHelper::CreateInterface (āĻ¸āĻŽāĻ¸ā§āĻ¤) āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ
src/mesh/helper/mesh-helper.h:119: āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž: āĻ¸āĻĻāĻ¸ā§āĻ¯ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ ns3::MeshHelper::SetStandard āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ (āĻ¸āĻŽāĻ¸ā§āĻ¤)
āĻāĻāĻ¨ āĻļā§āĻ§ā§ āĻā§āĻĄ āĻŦā§āĻāĻž, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻĄāĻā§āĻ¸ āĻ˛ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°!
ns-3 āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ
āĻ¸ā§āĻĢāĻŋāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻ¸ āĻāĻŦāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻŦā§āĻļ āĻāĻžāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻāĻ˛ āĻāĻ°āĻŦ āĻ¨āĻž
āĻāĻāĻžāĻ¨ā§ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻž ns-3.
¡ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻā§āĻ°ā§āĻĒ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻā§āĻŽ.
āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§, āĻāĻāĻāĻŋ Doxgyen āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨:
/ **
* \defgroup foo Foo āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĨ¤
*/
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻļā§āĻ°ā§āĻŖā§āĻā§ āĻā§āĻˇā§āĻ ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§āĻ¨:
/ **
* \inggroup foo
*
* Foo āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤
*/
āĻā§āĻ˛āĻžāĻ¸ Foo
¡ āĻ¤ā§āĻŽāĻŋ āĻāĻŋ āĻāĻžāĻ¨āĻ¤ā§ typedefs āĻāĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§? āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°:
/ **
* āĻŦāĻžāĻ° āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĨ¤
*
* \param ale āĻāĻŽā§āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻāĻ¨ā§āĻ¸ā§ āĻāĻ āĻĒāĻŋāĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ˛ā§āĻ° āĻāĻāĻžāĻ°āĨ¤
*/
typedef void (* BarCallback)(const int ale);
¡ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻā§āĻŖ āĻĨā§āĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻ GetTypeId āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
¡ āĻā§āĻ˛{298} āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻžāĻāĻāĻŋāĻ˛āĻžāĻ¯āĻŧ āĻŦāĻžāĻ 298 āĻāĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤
¡ \pname{foo} āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻšāĻŦā§ foo āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĒāĻ°āĻŽ foo āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°, āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°ā§
āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻā§āĻ¨.
¡ \RFC{301} RFC 301 āĻāĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤
¡ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻŋāĻļāĻĻ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¨āĻ¯āĻŧ
āĻāĻžāĻĒ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĢāĻžāĻāĻļāĻ¨ (āĻāĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤!)
āĻ¤ā§āĻā§āĻ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻ¯ā§āĻŽāĻ¨ āĻļā§āĻ°ā§āĻŖā§ AāĻāĻŽāĻ¨āĻāĻŋ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻā§āĻāĨ¤ āĻāĻāĻā§āĻ˛ā§
āĻā§āĻ˛āĻžāĻ¸ āĻ¨āĻžāĻŽā§āĻ° āĻāĻā§āĻˇāĻ°āĻŋāĻ 'A' āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§ āĻ˛āĻŋāĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ°ā§āĻ¨ā§āĻĄāĻžāĻ° āĻāĻ°āĻžāĨ¤
āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻ āĻāĻŋāĻāĻžāĻŦāĻ āĻļā§āĻ°ā§āĻŖā§āĨ¤ ns-3 āĻāĻŋāĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻ°ā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§; āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤
āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŦā§āĻ˛āĻ āĻšāĻ˛:
¡ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°/āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°:
āĻāĻŽāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ (); //!< āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°
~āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸ (); //!< āĻ§ā§āĻŦāĻāĻ¸āĻāĻžāĻ°ā§
¡ āĻĄāĻžāĻŽāĻŋ āĻĄā§āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻāĻŦāĻ āĻĄāĻŋāĻ¸āĻĒā§āĻ:
/** āĻĄāĻžāĻŽāĻŋ āĻ§ā§āĻŦāĻāĻ¸āĻāĻžāĻ°ā§, DoDispose āĻĻā§āĻā§āĻ¨āĨ¤ */
~āĻŽāĻžāĻāĻā§āĻ˛āĻžāĻ¸ ();
/** āĻ§ā§āĻŦāĻāĻ¸āĻāĻžāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ */
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° DoDispose ();
¡ GetTypeId:
/ **
* āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨.
* \ āĻ āĻŦāĻā§āĻā§āĻ TypeId āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨āĨ¤
*/
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻāĻāĻĄāĻŋ GetTypeId (āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°);
āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻ¤āĻž āĻāĻĒāĻ¸ā§āĻ of ns-3 āĻŽāĻĄāĻŋāĻāĻ˛
āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ¤ā§, ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻˇāĻŋāĻ¤ā§ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻĄāĻŧ āĻšāĻā§āĻā§,
āĻā§āĻĄ āĻ˛āĻžāĻāĻ¨, āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻĻāĻāĻŋāĻšā§āĻ¨. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž, āĻ¤āĻŦā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻā§āĻŦāĻžāĻ°ā§. āĻāĻ āĻāĻžāĻ°āĻŖā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¸ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŽā§āĻāĻŦ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻž āĻ¤āĻžāĻ°āĻž āĻāĻ¸āĻ˛ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŦā§āĻˇāĻŖāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻāĻžāĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ ns-3 āĻ¯ā§ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ°āĻšā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°.
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž a āĻāĻĒāĻ¸ā§āĻ of ns-3's āĻŽāĻĄāĻŋāĻāĻ˛
āĻ¯āĻĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻšāĻŦā§ā§ˇ
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻšāĻŦā§:
libns3-modulename.so
āĻ¯āĻĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§, āĻ¤āĻžāĻšāĻ˛ā§
libns3-modulename-test.so
āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻŦā§, āĻā§āĻŦ. āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ ns-3. āĻāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§
āĻŽāĻĄāĻŋāĻāĻ˛:
1. waf āĻāĻ° --enable-modules āĻ āĻĒāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž
2. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛
āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° waf āĻāĻ° --āĻ¸āĻā§āĻˇāĻŽ-āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒāĻāĻ¨ā§āĻĻ
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨:
$ ./waf āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests --enable-modules=core
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
$ cd āĻŦāĻŋāĻ˛ā§āĻĄ/āĻĄāĻŋāĻŦāĻžāĻ/
s ls
āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤:
bindings libns3-core.so ns3 āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋāĻ˛āĻ¸
āĻāĻĻāĻžāĻšāĻ°āĻŖ libns3-core-test.so āĻ¨āĻŽā§āĻ¨āĻž src
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ ./waff āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻ§āĻžāĻĒāĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻ¤ā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§. āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž ./waff āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¯āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻā§āĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
24āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 24āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (24āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
"āĻā§āĻ°" āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ "āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ" āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ°ā§āĻ° āĻ§āĻžāĻĒāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ libns3-core.so libns3-network.so ns3 āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋāĻ˛āĻ¸
āĻāĻĻāĻžāĻšāĻ°āĻŖ libns3-core-test.so libns3-network-test.so āĻ¨āĻŽā§āĻ¨āĻž src
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻ¸ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻšāĻŦā§ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ˛ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ā§ˇ
āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
31āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 31āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (31āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛
āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛, .ns3rc, āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ ns-3 āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž
āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ ns-3 āĻŽāĻĄāĻŋāĻāĻ˛, āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
1. --enable-modules āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯ā§āĻā§āĻ¨ā§ .ns3rc āĻĢāĻžāĻāĻ˛āĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§
2. āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°ā§ .ns3rc āĻĢāĻžāĻāĻ˛ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻā§
3. āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§ ~/.ns3rc āĻ¯āĻĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻĻā§āĻāĻŋ āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšāĻ¯āĻŧ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ¨āĻāĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻā§āĻ˛āĻŋ waf āĻāĻā§āĻāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨ā§ā§ˇ
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž
.ns3rc āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ ns-3 āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻĨāĻžāĻā§
āĻĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻļā§āĻ°ā§āĻˇ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĨāĻžāĻāĻ¤
āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛, āĻāĻāĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻžāĻāĻ¨āĻŋāĻ¤ āĻā§āĻāĻāĻ¨ āĻĒā§āĻ°āĻŦāĻŖ āĻšāĻŦā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨. āĻ¤āĻžāĻ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĨā§āĻā§ .ns3rc āĻāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ (āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻž āĻ¤āĻžāĻĻā§āĻ° āĻšā§āĻŽ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ) āĻĨā§āĻā§
āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨āĨ¤
āĻ§āĻ°ā§ āĻ¨āĻŋāĻā§āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ°ā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻā§āĻ¨ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ .ns3rc āĻāĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĢāĻžāĻāĻ˛ āĻ¯āĻž āĻāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ:
$ cp utils/.ns3rcāĨ¤
.ns3rc āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤:
#! /usr/bin/env āĻĒāĻžāĻāĻĨāĻ¨
# āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻž ns-3 āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
# āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
#
# 'all_modules' āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
modules_enabled = ['all_modules']
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
example_enabled = āĻŽāĻŋāĻĨā§āĻ¯āĻž
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
tests_enabled = āĻŽāĻŋāĻĨā§āĻ¯āĻž
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ .ns3rc āĻĢāĻžāĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻāĻ āĻŽāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž:
#! /usr/bin/env āĻĒāĻžāĻāĻĨāĻ¨
# āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻž ns-3 āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
# āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
#
# 'all_modules' āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
modules_enabled = ['āĻā§āĻ°']
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
example_enabled = āĻ¸āĻ¤ā§āĻ¯
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
tests_enabled = āĻ¸āĻ¤ā§āĻ¯
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§:
$ ./waf āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
$ cd āĻŦāĻŋāĻ˛ā§āĻĄ/āĻĄāĻŋāĻŦāĻžāĻ/
s ls
āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤:
bindings libns3-core.so ns3 āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋāĻ˛āĻ¸
āĻāĻĻāĻžāĻšāĻ°āĻŖ libns3-core-test.so āĻ¨āĻŽā§āĻ¨āĻž src
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ ./waff āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻ§āĻžāĻĒāĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻ¤ā§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§. āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž ./waff āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¯āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻā§āĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
24āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 24āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (24āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
"āĻā§āĻ°" āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ "āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ" āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ°ā§āĻ° āĻ§āĻžāĻĒāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ libns3-core.so libns3-network.so ns3 āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋāĻ˛āĻ¸
āĻāĻĻāĻžāĻšāĻ°āĻŖ libns3-core-test.so libns3-network-test.so āĻ¨āĻŽā§āĻ¨āĻž src
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻ¸ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻšāĻŦā§ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ˛ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ā§ˇ
āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
31āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 31āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (31āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻā§āĻā§ ns-3 āĻā§āĻ¸ā§āĻ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ns-3 āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ā§ āĻ āĻ¨ā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ ns-3
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž, āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¨āĻž
āĻāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ ns-3.
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻŋāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻ˛ā§āĻāĻ¨āĻž ns-3 āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš āĻŦāĻž āĻāĻžāĻĄāĻŧāĻžāĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻāĻžāĻ˛ā§ āĻ āĻāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž in ns-3
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻˇāĻŽ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° 3āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ ns-3:
1. build.py āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻāĻ¨ ns-3 āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ
2. āĻāĻ¯āĻŧāĻžāĻĢ āĻāĻāĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž ns-3 āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
3. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻāĻāĻŦāĻžāĻ° ns-3 āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
āĻāĻžāĻ˛ā§ āĻ āĻāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° build.py
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻā§āĻˇāĻŽ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ build.py āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻ¸āĻŽāĻ¯āĻŧāĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž ns-3.
ns-3-allinone āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĨā§āĻā§, āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻĄāĻŧāĻžāĻ
āĻāĻ°ā§āĻā§:
$ ./build.py
āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§ test.py āĻāĻ˛āĻā§ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻāĻ¨ āĻā§āĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž
āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§āĻ¨:
0āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 0āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (0āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ ns-3 āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨
ns-3-āĻ ā§āĻ¯āĻžāĻ˛āĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ:
$ ./build.py --enable-examples --enable-tests
āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§ test.py āĻāĻ˛āĻā§ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻŦā§
āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
170āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 170āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (170āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻžāĻ˛ā§ āĻ āĻāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ¯āĻŧāĻžāĻĢ
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŦāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻā§āĻˇāĻŽ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ waf āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§.
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž ns-3.
āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ° āĻĨā§āĻā§ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻĄāĻŧāĻžāĻ
āĻāĻ°ā§āĻā§:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
test.py āĻāĻāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¨āĻž:
0āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 0āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (0āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ ns-3 āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ°ā§ āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨
āĻ¸ā§āĻ¤āĻ° ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° --enable-examples --enable-tests
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
170āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 170āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (170āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻžāĻ˛ā§ āĻ āĻāĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ ns-3 āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛
āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛, .ns3rc, āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ ns-3 āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻāĻŋāĻ¨āĻž
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻŦāĻž āĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤. āĻāĻĒāĻ¨āĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻŦāĻžāĻ° ns-3 āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§.
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
1. --enable-examples/--disable-examples āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯ā§āĻā§āĻ¨ā§ .ns3rc āĻĢāĻžāĻāĻ˛āĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§
2. --enable-tests/--disable-tests āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯ā§āĻā§āĻ¨ .ns3rc āĻĢāĻžāĻāĻ˛āĻā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°ā§
3. āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°ā§ .ns3rc āĻĢāĻžāĻāĻ˛ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻā§
4. āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§ ~/.ns3rc āĻ¯āĻĻāĻŋ .ns3rc āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻā§āĻ° āĻ§āĻžāĻĒā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ¨āĻāĻŋāĻ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻžāĨ¤
.ns3rc āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ ns-3 āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻĨāĻžāĻā§
āĻĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ˛ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻļā§āĻ°ā§āĻˇ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĨāĻžāĻāĻ¤
āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛, āĻāĻāĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻžāĻāĻ¨āĻŋāĻ¤ āĻā§āĻāĻāĻ¨ āĻĒā§āĻ°āĻŦāĻŖ āĻšāĻŦā§
āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨. āĻ¤āĻžāĻ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĨā§āĻā§ .ns3rc āĻāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ (āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻž āĻ¤āĻžāĻĻā§āĻ° āĻšā§āĻŽ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ) āĻĨā§āĻā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¸āĻā§āĻˇāĻŽ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨.
āĻ§āĻ°ā§ āĻ¨āĻŋāĻā§āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ°ā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻā§āĻ¨ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ .ns3rc āĻāĻ° āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĢāĻžāĻāĻ˛ āĻ¯āĻž āĻāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ:
$ cp utils/.ns3rcāĨ¤
.ns3rc āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻļā§āĻ°ā§āĻˇ āĻ¸ā§āĻ¤āĻ°ā§ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤:
#! /usr/bin/env āĻĒāĻžāĻāĻĨāĻ¨
# āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻž ns-3 āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
# āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
#
# 'all_modules' āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
modules_enabled = ['all_modules']
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
example_enabled = āĻŽāĻŋāĻĨā§āĻ¯āĻž
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
tests_enabled = āĻŽāĻŋāĻĨā§āĻ¯āĻž
āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ° āĻĨā§āĻā§ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻĄāĻŧāĻžāĻ
āĻāĻ°ā§āĻā§:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
test.py āĻāĻāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻā§āĻ¨ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¨āĻž:
0āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 0āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (0āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ ns-3 āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
example_enabled āĻāĻŦāĻ tests_enabled āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ .ns3rc āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻ¤ā§ āĻšāĻŦā§:
#! /usr/bin/env āĻĒāĻžāĻāĻĨāĻ¨
# āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻž ns-3 āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
# āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
#
# 'all_modules' āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
modules_enabled = ['all_modules']
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
example_enabled = āĻ¸āĻ¤ā§āĻ¯
# āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
tests_enabled = āĻ¸āĻ¤ā§āĻ¯
āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ° āĻĨā§āĻā§ ns-3 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ns-3 āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš
āĻāĻ°āĻā§āĻ¨:
$ ./waf āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
$ ./waf āĻŦāĻŋāĻ˛ā§āĻĄ
test.py āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§:
170āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ 170āĻāĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧā§āĻā§ (170āĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻā§, 0āĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§, 0āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§āĻā§, 0āĻāĻŋ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¤ā§āĻ°ā§āĻāĻŋ)
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨
āĻāĻ āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻŦāĻž āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¸ā§āĻ āĻāĻ°ā§
ns-3 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĨ¤
āĻĻāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻāĻŋ (http://www.nsnam.org/wiki/Troubleshooting) āĻ āĻŦāĻĻāĻžāĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻā§āĻŽāĨ¤
āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻ¤ā§āĻ°ā§āĻāĻŋ
āĻ°āĻžāĻ¨-āĻāĻžāĻāĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋ
āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ, āĻāĻāĻāĻŋ āĻ¸āĻĢāĻ˛ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻā§āĻ˛ā§ āĻ°āĻžāĻ¨-āĻāĻžāĻāĻŽ
āĻ¤ā§āĻ°ā§āĻāĻŋ, āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻāĻ¨ āĻŽā§āĻŽāĻ°āĻŋ āĻĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻŦāĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻŽāĻžāĻ¨ āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤āĻāĻžāĻŦā§ āĻšāĻ¯āĻŧ
āĻāĻžāĻ˛āĻŋ.
āĻāĻāĻžāĻ¨ā§ āĻāĻŋ āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
$./waf --run tcp-point-to-point
'/home/tomh/ns-3-nsc/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤
āĻāĻŽāĻžāĻ¨ā§āĻĄ ['/home/tomh/ns-3-nsc/build/debug/examples/tcp-point-to-point'] āĻā§āĻĄ -11 āĻ¸āĻš āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻŦāĻ˛ā§ āĻ¯ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻ¨āĻ¯āĻŧ
āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻĨā§āĻā§ āĻāĻŋ āĻā§āĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ°ā§ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§, āĻāĻāĻŋ āĻ āĻ§ā§āĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨
āĻĻā§āĻ¯ āĻāĻŋāĻĄāĻŋāĻŦāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°:
$ ./waf --run tcp-point-to-point --command-template="gdb %s"
'/home/tomh/ns-3-nsc/build' āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻāĻāĻ˛āĻ¨ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤
GNU gdb Red Hat Linux (6.3.0.0-1.134.fc5rh)
āĻāĻĒāĻŋāĻ°āĻžāĻāĻ 2004 āĻĢā§āĻ°āĻŋ āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĢāĻžāĻāĻ¨ā§āĻĄā§āĻļāĻ¨, āĻāĻ¨āĻ.
GDB āĻšāĻ˛ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°, GNU āĻā§āĻ¨āĻžāĻ°ā§āĻ˛ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻā§āĻāĻžāĻĻāĻŋāĻ¤, āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ¨
āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻļāĻ°ā§āĻ¤ā§ āĻāĻ° āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻ¸ā§āĻŦāĻžāĻāĻ¤ āĻāĻžāĻ¨āĻžāĻāĨ¤
āĻļāĻ°ā§āĻ¤ āĻĻā§āĻāĻ¤ā§ "āĻļā§ āĻāĻĒāĻŋ āĻāĻ°āĻž" āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤
GDB āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻŦāĻžāĻ°ā§ āĻā§āĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻ¨ā§āĻāĻŋ āĻ¨ā§āĻāĨ¤ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ "āĻļā§ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻ¨ā§āĻāĻŋ" āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ GDB āĻā§ "i386-redhat-linux-gnu" āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§...āĻšā§āĻ¸ā§āĻ libthread_db āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ "/lib/libthread_db.so.1"āĨ¤
(gdb) āĻāĻžāĻ˛āĻžāĻ¨
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻļā§āĻ°ā§ āĻšāĻā§āĻā§: /home/tomh/ns-3-nsc/build/debug/examples/tcp-point-to-point
āĻāĻžāĻ°ā§āĻā§āĻ āĻŽā§āĻŽāĻ°āĻŋ āĻĨā§āĻā§ āĻĒāĻ āĻŋāĻ¤ āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§ āĻāĻŋāĻšā§āĻ¨ āĻĒāĻĄāĻŧāĻž... āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨āĨ¤
āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ 0xf5c000 āĻ DSO āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§āĻā§
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ SIGSEGV, āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĢāĻ˛ā§āĻ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤
0x0804aa12 āĻĒā§āĻ°āĻ§āĻžāĻ¨ (argc=1, argv=0xbfdfefa4)
../examples/tcp-point-to-point.cc:136-āĻ
136 Ptr localSocket = socketFactory->CreateSocket ();
(gdb) p localSocket
$1 = {m_ptr = 0x3c5d65}
(āĻāĻŋāĻĄāĻŋāĻŦāĻŋ) āĻĒāĻŋ āĻ¸āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ
$2 = {m_ptr = 0x0}
(gdb) āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻ˛āĻā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻŦā§āĻ¨? (y āĻŦāĻž n) y
āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžāĻŦā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛-- āĻāĻāĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻ¨
āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ "gdb %s"āĨ¤
āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻžāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻā§ āĻĄāĻŋāĻ°ā§āĻĢāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻŋāĻ¸āĻŋāĻĒāĻŋ-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻā§-āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° 136 āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻĻā§āĻāĻŋ, āĻ¯ā§āĻŽāĻ¨ āĻāĻŋāĻĄāĻŋāĻŦāĻŋ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧ:
Ptr āĻ¸āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ = n2->āĻā§āĻāĻ āĻŦāĻā§āĻā§āĻ (Tcp::iid);
Ptr localSocket = socketFactory->CreateSocket ();
localSocket->Bind ();
āĻāĻāĻžāĻ¨ā§ āĻ āĻĒāĻ°āĻžāĻ§ā§ āĻšāĻ˛ GetObject āĻāĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¨āĻž āĻāĻŦāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻžāĻ˛āĻŋ.
āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻ āĻāĻ°āĻ āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻŦāĻžāĻ°,
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻāĻžāĻŦā§ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ°āĻŋāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻšā§āĻŦāĻžāĻ¨ āĻāĻžāĻ¨āĻžāĻ¨:
$ ./waf --run tcp-point-to-point --command-template="valgrind %s"
āĻā§āĻ¸
āĻāĻ āĻ¨āĻĨāĻŋāĻ¤ā§ āĻ˛ā§āĻāĻž āĻāĻā§ reStructuredText āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸ā§āĻĒāĻŋāĻāĻā§āĻ¸ āĻāĻŦāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĄāĻ/āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ ns-3 āĻāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĨ¤
onworks.net āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ā§ ns-3-āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨