def bind_layers(lower, upper, __fval=None, **fval):
    """Bind 2 layers on some specific fields' values. It makes the packet being built  # noqa: E501
    and dissected when the arguments are present.

    This functions calls both bind_bottom_up and bind_top_down, with all passed arguments.  # noqa: E501
    Please have a look at their docs:
     - help(bind_bottom_up)
     - help(bind_top_down)
     """
    if __fval is not None:
        fval.update(__fval)
    bind_top_down(lower, upper, **fval)
    bind_bottom_up(lower, upper, **fval)