#
#THIS IS A SAMPLE SERVER DATA TRAFFIC CONFIGURATION FILE
#
# * TO BE USED TO CONFIGURE RESPONSE TO INTERESTS
# * MULTIPLE SERVER PREFIXES CAN BE CONFIGURED FOR BEING HANDLED
# * 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
# * NNI STANDS FOR NON-NEGATIVE INTEGER
# * RANGE OF POSSIBLE VALUES IS SPECIFIED IN [] 
#
#
#(Mandatory)
#Name=NDN Name
#
#
#(Optional)
#ContentType=NNI [>=0]
#FreshnessPeriod=NNI [Milliseconds]
#ContentBytes=NNI [>0]
#Content=String
#
#
##########
Name=/example/A
ContentType=1
ContentBytes=10
##########
Name=/example/B
ContentType=0
FreshnessPeriod=0
Content=NoData
##########
