#
#THIS IS A SAMPLE CLIENT INTEREST TRAFFIC CONFIGURATION FILE
#
# * TO BE USED TO GENERATE INTEREST MESSAGES BASED ON A PROBABILITY
#   PATTERN.
# * EVERY INIVIDUAL PATTERN DESCRIPTION MUST BE SEPARATED BY ONE
#   OR MORE '#' CHARACTERS FOR THE TOOL TO DISTINGUISH THEM
#   INDIVIUDALLY
# * THE FOLLOWING PARAMETERS MAY BE ADDED FOR EVERY TRAFFIC PATTERN
# * (Mandatory) NEXT TO A PARAMETER MEANS EVERY PATTERN SHOULD HAVE
#   IT FOR BEING CONSIDERED VALID
#   (Optional) MEANS OTHERWISE
# * ALSO PROVIDED ARE VALID VALUES POSSIBLE FOR EACH PARAMETER
# * PLEASE ENSURE THAT THE SUM OF TRAFFIC PERCENTAGE FOR ALL PATTERNS
#   PROVIDED DOES NOT EXCEED 100 IN ORDER TO MAINTAIN CORRECT BEHAVIOR
# * NNI STANDS FOR NON-NEGATIVE INTEGER
# * RANGE OF POSSIBLE VALUES IS SPECIFIED IN [] 
#
#
#(Mandatory)
#TrafficPercentage=NNI [0-100]
#Name=NDN Name
#
#(Optional)
#NameAppendBytes=NNI [>0]
#NameAppendSequenceNumber=NNI [>=0]
#MinSuffixComponents=NNI
#MaxSuffixComponents=NNI
#ExcludeBefore=NDN Name Component
#ExcludeAfter=NDN Name Component
#ExcludeBeforeBytes=NNI [>0]
#ExcludeAfterBytes=NNI [>0]
#ChildSelector=NNI [0-1]
#MustBeFresh=NNI [0-1]
#NonceDuplicationPercentage=NNI [0-100]
#Scope=NNI
#InterestLifetime=NNI [Milliseconds]
#ExpectedContent=String
#
#
##########
TrafficPercentage=50
Name=/example/A
ExpectedContent=AAAAAAAA
##########
TrafficPercentage=50
Name=/example/B
ExpectedContent=BBBBBBBB
##########

