aboutsummaryrefslogtreecommitdiffstats
path: root/doxygen/siphon/process_syscfg.py
blob: bccde2c153de3b157f679cb9cc4bcf44df0f18d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Copyright (c) 2016 Comcast Cable Communications Management, LLC.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Generate syscfg formatted output

from . import process, parsers


class SiphonSYSCFG(process.Siphon):

    name = "syscfg"
    identifier = "VLIB_CONFIG_FUNCTION"

    def __init__(self, *args, **kwargs):
        super(SiphonSYSCFG, self).__init__(*args, **kwargs)
        self._parser = parsers.ParseFunctionMacroStmt()


# Register our processor
process.siphons["syscfg"] = SiphonSYSCFG
or drop the packet. Statistics counters are maintained for MTR object, as configured. The processing done for each input packet hitting an MTR object is: * Traffic metering: The packet is assigned a color (the meter output color) based on the previous traffic history reflected in the current state of the MTR object, according to the specific traffic metering algorithm. The traffic metering algorithm can typically work in color aware mode, in which case the input packet already has an initial color (the input color), or in color blind mode, which is equivalent to considering all input packets initially colored as green. * Policing: There is a separate policer action configured for each meter output color, which can: * Drop the packet. * Keep the same packet color: the policer output color matches the meter output color (essentially a no-op action). * Recolor the packet: the policer output color is set to a different color than the meter output color. The policer output color is the output color of the packet, which is set in the packet meta-data (i.e. struct ``rte_mbuf::sched::color``). * Statistics: The set of counters maintained for each MTR object is configurable and subject to the implementation support. This set includes the number of packets and bytes dropped or passed for each output color.