libnl 1.1
Differentiated Services Marker (DSMARK)
Queueing Discipline Modules | Class Modules

Class Attribute Access

int rtnl_class_dsmark_set_bitmask (struct rtnl_class *class, uint8_t mask)
 Set bitmask of DSMARK class.
int rtnl_class_dsmark_get_bitmask (struct rtnl_class *class)
 Get bitmask of DSMARK class.
int rtnl_class_dsmark_set_value (struct rtnl_class *class, uint8_t value)
 Set value of DSMARK class.
int rtnl_class_dsmark_get_value (struct rtnl_class *class)
 Get value of DSMARK class.

Qdisc Attribute Access

int rtnl_qdisc_dsmark_set_indices (struct rtnl_qdisc *qdisc, uint16_t indices)
 Set indices of DSMARK qdisc.
int rtnl_qdisc_dsmark_get_indices (struct rtnl_qdisc *qdisc)
 Get indices of DSMARK qdisc.
int rtnl_qdisc_dsmark_set_default_index (struct rtnl_qdisc *qdisc, uint16_t default_index)
 Set default index of DSMARK qdisc.
int rtnl_qdisc_dsmark_get_default_index (struct rtnl_qdisc *qdisc)
 Get default index of DSMARK qdisc.
int rtnl_qdisc_dsmark_set_set_tc_index (struct rtnl_qdisc *qdisc, int flag)
 Set set-tc-index flag of DSMARK qdisc.
int rtnl_qdisc_dsmark_get_set_tc_index (struct rtnl_qdisc *qdisc)
 Get set-tc-index flag of DSMARK qdisc.

Function Documentation

int rtnl_class_dsmark_set_bitmask ( struct rtnl_class *  class,
uint8_t  mask 
)
Parameters:
classDSMARK class to be modified.
maskNew bitmask.
Returns:
0 on success or a negative error code.

Definition at line 248 of file dsmark.c.

{
        struct rtnl_dsmark_class *dsmark;
        
        dsmark = dsmark_class(class);
        if (!dsmark)
                return nl_errno(ENOMEM);

        dsmark->cdm_bmask = mask;
        dsmark->cdm_mask |= SCH_DSMARK_ATTR_MASK;

        return 0;
}
int rtnl_class_dsmark_get_bitmask ( struct rtnl_class *  class)
Parameters:
classDSMARK class.
Returns:
Bitmask or a negative error code.

Definition at line 267 of file dsmark.c.

{
        struct rtnl_dsmark_class *dsmark;

        dsmark = dsmark_class(class);
        if (dsmark && dsmark->cdm_mask & SCH_DSMARK_ATTR_MASK)
                return dsmark->cdm_bmask;
        else
                return nl_errno(ENOENT);
}
int rtnl_class_dsmark_set_value ( struct rtnl_class *  class,
uint8_t  value 
)
Parameters:
classDSMARK class to be modified.
valueNew value.
Returns:
0 on success or a negative errror code.

Definition at line 284 of file dsmark.c.

{
        struct rtnl_dsmark_class *dsmark;

        dsmark = dsmark_class(class);
        if (!dsmark)
                return nl_errno(ENOMEM);

        dsmark->cdm_value = value;
        dsmark->cdm_mask |= SCH_DSMARK_ATTR_VALUE;

        return 0;
}
int rtnl_class_dsmark_get_value ( struct rtnl_class *  class)
Parameters:
classDSMARK class.
Returns:
Value or a negative error code.

Definition at line 303 of file dsmark.c.

{
        struct rtnl_dsmark_class *dsmark;

        dsmark = dsmark_class(class);
        if (dsmark && dsmark->cdm_mask & SCH_DSMARK_ATTR_VALUE)
                return dsmark->cdm_value;
        else
                return nl_errno(ENOENT);
}
int rtnl_qdisc_dsmark_set_indices ( struct rtnl_qdisc *  qdisc,
uint16_t  indices 
)
Parameters:
qdiscDSMARK qdisc to be modified.
indicesNew indices.

Definition at line 326 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (!dsmark)
                return nl_errno(ENOMEM);

        dsmark->qdm_indices = indices;
        dsmark->qdm_mask |= SCH_DSMARK_ATTR_INDICES;

        return 0;
}
int rtnl_qdisc_dsmark_get_indices ( struct rtnl_qdisc *  qdisc)
Parameters:
qdiscDSMARK qdisc.
Returns:
Indices or a negative error code.

Definition at line 345 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (dsmark && dsmark->qdm_mask & SCH_DSMARK_ATTR_INDICES)
                return dsmark->qdm_indices;
        else
                return nl_errno(ENOENT);
}
int rtnl_qdisc_dsmark_set_default_index ( struct rtnl_qdisc *  qdisc,
uint16_t  default_index 
)
Parameters:
qdiscDSMARK qdisc to be modified.
default_indexNew default index.
Returns:
0 on success or a negative error code.

Definition at line 362 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (!dsmark)
                return nl_errno(ENOMEM);

        dsmark->qdm_default_index = default_index;
        dsmark->qdm_mask |= SCH_DSMARK_ATTR_DEFAULT_INDEX;

        return 0;
}
int rtnl_qdisc_dsmark_get_default_index ( struct rtnl_qdisc *  qdisc)
Parameters:
qdiscDSMARK qdisc.
Returns:
Default index or a negative error code.

Definition at line 382 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (dsmark && dsmark->qdm_mask & SCH_DSMARK_ATTR_DEFAULT_INDEX)
                return dsmark->qdm_default_index;
        else
                return nl_errno(ENOENT);
}
int rtnl_qdisc_dsmark_set_set_tc_index ( struct rtnl_qdisc *  qdisc,
int  flag 
)
Parameters:
qdiscDSMARK qdisc to be modified.
flagFlag indicating whether to enable or disable.
Returns:
0 on success or a negative error code.

Definition at line 399 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (!dsmark)
                return nl_errno(ENOMEM);

        dsmark->qdm_set_tc_index = !!flag;
        dsmark->qdm_mask |= SCH_DSMARK_ATTR_SET_TC_INDEX;

        return 0;
}
int rtnl_qdisc_dsmark_get_set_tc_index ( struct rtnl_qdisc *  qdisc)
Parameters:
qdiscDSMARK qdisc to be modified.
Returns:
1 or 0 to indicate wehther the flag is enabled or a negative error code.

Definition at line 419 of file dsmark.c.

{
        struct rtnl_dsmark_qdisc *dsmark;

        dsmark = dsmark_qdisc(qdisc);
        if (dsmark && dsmark->qdm_mask & SCH_DSMARK_ATTR_SET_TC_INDEX)
                return dsmark->qdm_set_tc_index;
        else
                return nl_errno(ENOENT);
}