Beispiel #1
0
def get_parameters(kwarg):
    ret = {'attrs': []}
    attrs_map = (
        # ('action', 'TCA_BPF_ACT'),
        # ('police', 'TCA_BPF_POLICE'),
        ('classid', 'TCA_BPF_CLASSID'),
        ('fd', 'TCA_BPF_FD'),
        ('name', 'TCA_BPF_NAME'),
        ('flags', 'TCA_BPF_FLAGS'),
    )

    act = kwarg.get('action')
    if act:
        ret['attrs'].append(['TCA_BPF_ACT', get_tca_action(kwarg)])

    if kwarg.get('rate'):
        ret['attrs'].append(['TCA_BPF_POLICE', ap_parameters(kwarg)])

    kwarg['flags'] = kwarg.get('flags', 0)
    if kwarg.get('direct_action', False):
        kwarg['flags'] |= TCA_BPF_FLAG_ACT_DIRECT

    for k, v in attrs_map:
        r = kwarg.get(k, None)
        if r is not None:
            ret['attrs'].append([v, r])

    return ret
Beispiel #2
0
def get_parameters(kwarg):
    ret = {'attrs': []}
    attrs_map = (
        ('baseclass', 'TCA_FLOW_BASECLASS'),
        ('divisor', 'TCA_FLOW_DIVISOR'),
        ('perturb', 'TCA_FLOW_PERTURB'),
    )

    if kwarg.get('mode'):
        ret['attrs'].append(['TCA_FLOW_MODE', get_tca_mode(kwarg)])
        if kwarg.get('mode') == 'hash':
            ret['attrs'].append(['TCA_FLOW_KEYS', get_tca_keys(kwarg, 'keys')])

        if kwarg.get('mode') == 'map':
            ret['attrs'].append(['TCA_FLOW_KEYS', get_tca_keys(kwarg, 'key')])
            # Check for OPS presence
            if 'ops' in kwarg:
                get_tca_ops(kwarg, ret['attrs'])

    if kwarg.get('action'):
        ret['attrs'].append(['TCA_FLOW_ACT', get_tca_action(kwarg)])

    for k, v in attrs_map:
        r = kwarg.get(k, None)
        if r is not None:
            ret['attrs'].append([v, r])

    return ret
Beispiel #3
0
def get_parameters(kwarg):
    ret = {'attrs': []}

    if kwarg.get('rate'):
        ret['attrs'].append(['TCA_U32_POLICE', ap_parameters(kwarg)])
    elif kwarg.get('action'):
        ret['attrs'].append(['TCA_U32_ACT', get_tca_action(kwarg)])

    ret['attrs'].append(['TCA_U32_CLASSID', kwarg['target']])
    ret['attrs'].append(['TCA_U32_SEL', {'keys': kwarg['keys']}])

    return ret
Beispiel #4
0
def get_parameters(kwarg):
    ret = {'attrs': []}
    attrs_map = (('classid', 'TCA_MATCHALL_CLASSID'), ('flags',
                                                       'TCA_MATCHALL_FLAGS'))

    if kwarg.get('action'):
        ret['attrs'].append(['TCA_MATCHALL_ACT', get_tca_action(kwarg)])

    for k, v in attrs_map:
        r = kwarg.get(k, None)
        if r is not None:
            ret['attrs'].append([v, r])

    return ret
Beispiel #5
0
def get_parameters(kwarg):
    ret = {'attrs': []}
    attrs_map = (('classid', 'TCA_BASIC_CLASSID'), )

    if kwarg.get('match'):
        ret['attrs'].append(['TCA_BASIC_EMATCHES', get_tcf_ematches(kwarg)])

    if kwarg.get('action'):
        ret['attrs'].append(['TCA_BASIC_ACT', get_tca_action(kwarg)])

    for k, v in attrs_map:
        r = kwarg.get(k, None)
        if r is not None:
            ret['attrs'].append([v, r])

    return ret
Beispiel #6
0
def get_parameters(kwarg):
    ret = {'attrs': []}
    attrs_map = (
        ('classid', 'TCA_FW_CLASSID'),
        # ('police', 'TCA_FW_POLICE'),
        # Handled in ap_parameters
        ('indev', 'TCA_FW_INDEV'),
        ('mask', 'TCA_FW_MASK'),
    )

    if kwarg.get('rate'):
        ret['attrs'].append(['TCA_FW_POLICE', ap_parameters(kwarg)])

    if kwarg.get('action'):
        ret['attrs'].append(['TCA_FW_ACT', get_tca_action(kwarg)])

    for k, v in attrs_map:
        r = kwarg.get(k, None)
        if r is not None:
            ret['attrs'].append([v, r])

    return ret