Exemplo n.º 1
0
    def get_meta_description():
        from metaConfig.metaTable import MetaTable
        from metaConfig.metaTableField import MetaTableField

        config = MetaTable(
            PacketLossTable.DB_TABLE_NAME,
            header_doc=
            """In this csv file you are able to set settings for packet loss manipulation, which can be
applied on different streamed sources.""",
            fields=[
                MetaTableField(
                    PacketLossTable.DB_TABLE_FIELD_NAME_PACKET_LOSS_ID, int,
                    'unique id identifying the packet loss settings'),
                MetaTableField(
                    PacketLossTable.DB_TABLE_FIELD_NAME_MANIPULATOR_TOOL, str,
                    'name of the manipulator tool to use',
                    PacketLossTable.VALID_FIELD_VALUES__MANIPULATOR_TOOL),
                MetaTableField(
                    PacketLossTable.DB_TABLE_FIELD_NAME_MANIPULATOR_TOOL_ID,
                    int,
                    'unique id which refers to the manipulator\'s specific settings'
                )
            ])

        from manipulators.resources.trafficControlManipulatorResource import TrafficControlManipulatorResource as TCRes
        from manipulators.resources.telchemyManipulatorResource import TelchemyManipulatorResource as TelchemyRes

        config.add_children(
            [TCRes.get_meta_description(),
             TelchemyRes.get_meta_description()])

        return config
Exemplo n.º 2
0
    def get_meta_description():
        from metaConfig.metaTable import MetaTable
        from metaConfig.metaTableField import MetaTableField

        config = MetaTable(
            TelchemyManipulatorMarkovResource.DB_TABLE_NAME,
            header_doc=
            """In this csv file you are able to configure different individual setting combination which can
be used to manipulate .pcap files with the telchemy tpkloss tool, but only for markov models.""",
            fields=[
                MetaTableField(
                    TelchemyManipulatorMarkovResource.DB_FIELD_NAME_ID, int,
                    'unique id to identify each data set individually'),
                MetaTableField(
                    TelchemyManipulatorMarkovResource.DB_FIELD_MARKOV_TYPE,
                    str, 'markov model to use for the manipulation', {
                        TelchemyManipulatorMarkovResource.DB_FIELD_VALUE_MARKOV_TYPE_2STATE_VALUE:
                        '2-state markov model (config in: %s/%s table)' %
                        (TelchemyManipulatorResource.DB_TABLE_NAME,
                         TelchemyManipulatorMarkov2StateResource.DB_TABLE_NAME
                         ),
                        TelchemyManipulatorMarkovResource.DB_FIELD_VALUE_MARKOV_TYPE_4STATE_VALUE:
                        '4-state markov model (config in: %s/%s table)' %
                        (TelchemyManipulatorResource.DB_TABLE_NAME,
                         TelchemyManipulatorMarkov4StateResource.DB_TABLE_NAME
                         ),
                        TelchemyManipulatorMarkovResource.DB_FIELD_VALUE_MARKOV_TYPE_PNAMSPBNAMS_4STATE_VALUE:
                        'P.NAMS/P.NBAMS 4-state markov model (config in: %s/%s table)'
                        % (TelchemyManipulatorResource.DB_TABLE_NAME,
                           TelchemyManipulatorMarkovPNamsPNBams4StateResource.
                           DB_TABLE_NAME)
                    }),
                MetaTableField(
                    TelchemyManipulatorMarkovResource.DB_FIELD_MARKOV_ID, int,
                    'id to identify the settings linked to the appropriate models'
                ),
                MetaTableField(
                    TelchemyManipulatorMarkovResource.DB_FIELD_START_AFTER,
                    int,
                    'time in ms after the transmission\'s beginning, when the manipulation should start'
                ),
                MetaTableField(
                    TelchemyManipulatorMarkovResource.DB_FIELD_END_BEFORE, int,
                    'time in ms before the transmission\'s end, when the manipulation should stop'
                ),
            ])

        config.add_children([
            TelchemyManipulatorMarkov2StateResource.get_meta_description(),
            TelchemyManipulatorMarkov4StateResource.get_meta_description(),
            TelchemyManipulatorMarkovPNamsPNBams4StateResource.
            get_meta_description()
        ])

        return config
Exemplo n.º 3
0
    def get_meta_description():
        from metaConfig.metaTable import MetaTable
        from metaConfig.metaTableField import MetaTableField

        config = MetaTable(
            'hrc',
            header_doc="""In this csv file you are able to link different settings together which can be applied on an
arbitrary source.""",
            fields=[
                MetaTableField(
                    HrcTable.DB_TABLE_FIELD_NAME_HRC_ID,
                    int,
                    'unique id for each individual HRC data set used to reference it'
                ),
                MetaTableField(
                    EncodingTable.DB_TABLE_FIELD_NAME_ENCODING_ID,
                    int,
                    'id of the settings used for encoding (Defined in the hrc/encoding.csv file)'
                ),
                MetaTableField(
                    PacketLossTable.DB_TABLE_FIELD_NAME_PACKET_LOSS_ID,
                    int,
                    'id of the settings used for packet manipulation (Defined in the hrc/packet_loss.csv file)'
                ),
                MetaTableField(
                    HrcTable.DB_TABLE_FIELD_NAME_CODER_ID,
                    str,
                    'name of the coder to use for encoding, streaming and decoding'
                ),
                MetaTableField(
                    HrcTable.DB_TABLE_FIELD_NAME_STREAM_MODE,
                    str,
                    'mode in which the file should be streamed',
                    HrcTable.VALID_STREAM_MODES
                )
            ]
        )

        # build sub-tree from hrc
        config.add_children([EncodingTable.get_meta_description(), PacketLossTable.get_meta_description()])
        return config
Exemplo n.º 4
0
    def get_meta_description():
        from metaConfig.metaTable import MetaTable
        from metaConfig.metaTableField import MetaTableField

        config = MetaTable(
            TelchemyManipulatorResource.DB_TABLE_NAME,
            header_doc=
            """In this csv file you are able to configure different individual setting combination which can
be used to manipulate .pcap files with the telchemy tpkloss tool.""",
            fields=[
                MetaTableField(
                    TelchemyManipulatorResource.DB_FIELD_NAME_ID, int,
                    'unique id to identify each data set individually'),
                MetaTableField(
                    TelchemyManipulatorResource.DB_FIELD_MANIPULATION_TYPE,
                    str,
                    'defines the manipulation model to use for the manipulation',
                    {
                        TelchemyManipulatorResource.MANIPULATION_TYPE_MARKOV:
                        'use a markov model (further specifications in %s table)'
                        % TelchemyManipulatorMarkovResource.DB_TABLE_NAME,
                        TelchemyManipulatorResource.MANIPULATION_TYPE_READ_TRACE:
                        'read a trace (further specifications in %s table)' %
                        TelchemyManipulatorReadTraceResource.DB_TABLE_NAME
                    }),
                MetaTableField(
                    TelchemyManipulatorResource.DB_FIELD_MANIPULATION_ID, int,
                    'id to identify the settings linked to the appropriate manipulation'
                )
            ])

        config.add_children([
            TelchemyManipulatorReadTraceResource.get_meta_description(),
            TelchemyManipulatorMarkovResource.get_meta_description()
        ])

        return config
    def get_meta_description():
        from metaConfig.metaTable import MetaTable
        from metaConfig.metaTableField import MetaTableField

        config = MetaTable(
            TrafficControlManipulatorResource.DB_TABLE_NAME,
            header_doc="""In this file you are able to configure the traffic control manipulator tool for
online manipulation.""",
            fields=[
                MetaTableField(
                    TrafficControlManipulatorResource.DB_ID_FIELD_NAME,
                    int,
                    'unique id to identify the control data set'
                ),
                MetaTableField(
                    TrafficControlManipulatorResource.DB_DELAY_FIELD_NAME,
                    float,
                    'delay in ms which may occur on the packet transmission'
                ),
                MetaTableField(
                    TrafficControlManipulatorResource.DB_JITTER_FIELD_NAME,
                    float,
                    'jitter in ms in which the delay may vary'
                ),
                MetaTableField(
                    TrafficControlManipulatorResource.DB_JITTER_DISTRIBUTION_FIELD_NAME,
                    str,
                    'specification of the jitter distribution',
                    TrafficControlManipulatorResource.DB_JITTER_DISTRIBUTION_VALID_VALUES
                ),
                MetaTableField(
                    TrafficControlManipulatorResource.DB_LOSS_MODE_FIELD_NAME,
                    str,
                    """specifies in which mode the packets transmission should be manipulated,
i.e. which model should be applied on""",
                    {
                        TrafficControlManipulatorResource.DB_LOSS_MODE_RANDOM_VALUE:
                            'loss is randomly distributed',
                        TrafficControlManipulatorResource.DB_LOSS_MODE_STATE_VALUE:
                            'loss is distributed via markov model settings',
                        TrafficControlManipulatorResource.DB_LOSS_MODE_GE_VALUE:
                            'loss is distributed via Gilbert-Elliot models'
                    }
                ),
                MetaTableField(
                    TrafficControlManipulatorResource.DB_LOSS_MODE_ID_FIELD_NAME,
                    int,
                    """an arbitrary, but unique, id referencing to a configuration set of the appropriate loss_mode,
the referenced configuration can be set in the tc configuration folders (look up the file according to the mode's
name!)"""
                )
            ]
        )

        config.add_children([
            TrafficControlManipulatorGeModelResource.get_meta_description(),
            TrafficControlManipulatorStateModeResource.get_meta_description(),
            TrafficControlManipulatorRandomModeResource.get_meta_description()
        ])

        return config