本文整理汇总了C++中OF_OBJECT_ABSOLUTE_OFFSET函数的典型用法代码示例。如果您正苦于以下问题:C++ OF_OBJECT_ABSOLUTE_OFFSET函数的具体用法?C++ OF_OBJECT_ABSOLUTE_OFFSET怎么用?C++ OF_OBJECT_ABSOLUTE_OFFSET使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OF_OBJECT_ABSOLUTE_OFFSET函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: of_set_config_miss_send_len_set
/**
* Set miss_send_len in an object of type of_set_config.
* @param obj Pointer to an object of type of_set_config.
* @param miss_send_len The value to write into the object
*/
void
of_set_config_miss_send_len_set(
of_set_config_t *obj,
uint16_t miss_send_len)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_SET_CONFIG);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 10;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, miss_send_len);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:40,代码来源:of_set_config.c
示例2: of_experimenter_error_msg_experimenter_set
/**
* Set experimenter in an object of type of_experimenter_error_msg.
* @param obj Pointer to an object of type of_experimenter_error_msg.
* @param experimenter The value to write into the object
*/
void
of_experimenter_error_msg_experimenter_set(
of_experimenter_error_msg_t *obj,
uint32_t experimenter)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_EXPERIMENTER_ERROR_MSG);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 12;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_set(wbuf, abs_offset, experimenter);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:38,代码来源:of_experimenter_error_msg.c
示例3: of_oxm_vlan_vid_masked_value_mask_set
/**
* Set value_mask in an object of type of_oxm_vlan_vid_masked.
* @param obj Pointer to an object of type of_oxm_vlan_vid_masked.
* @param value_mask The value to write into the object
*/
void
of_oxm_vlan_vid_masked_value_mask_set(
of_oxm_vlan_vid_masked_t *obj,
uint16_t value_mask)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_OXM_VLAN_VID_MASKED);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 6;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, value_mask);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:38,代码来源:of_oxm_vlan_vid_masked.c
示例4: of_bsn_get_interfaces_request_experimenter_set
/**
* Set experimenter in an object of type of_bsn_get_interfaces_request.
* @param obj Pointer to an object of type of_bsn_get_interfaces_request.
* @param experimenter The value to write into the object
*/
void
of_bsn_get_interfaces_request_experimenter_set(
of_bsn_get_interfaces_request_t *obj,
uint32_t experimenter)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_GET_INTERFACES_REQUEST);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 8;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_set(wbuf, abs_offset, experimenter);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:40,代码来源:of_bsn_get_interfaces_request.c
示例5: of_bsn_gentable_entry_desc_stats_reply_subtype_set
/**
* Set subtype in an object of type of_bsn_gentable_entry_desc_stats_reply.
* @param obj Pointer to an object of type of_bsn_gentable_entry_desc_stats_reply.
* @param subtype The value to write into the object
*/
void
of_bsn_gentable_entry_desc_stats_reply_subtype_set(
of_bsn_gentable_entry_desc_stats_reply_t *obj,
uint32_t subtype)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_GENTABLE_ENTRY_DESC_STATS_REPLY);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 20;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_set(wbuf, abs_offset, subtype);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_bsn_gentable_entry_desc_stats_reply.c
示例6: of_bsn_vport_q_in_q_if_name_set
/**
* Set if_name in an object of type of_bsn_vport_q_in_q.
* @param obj Pointer to an object of type of_bsn_vport_q_in_q.
* @param if_name The value to write into the object
*/
void
of_bsn_vport_q_in_q_if_name_set(
of_bsn_vport_q_in_q_t *obj,
of_port_name_t if_name)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_VPORT_Q_IN_Q);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 16;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_port_name_set(wbuf, abs_offset, if_name);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:40,代码来源:of_bsn_vport_q_in_q.c
示例7: of_meter_mod_failed_error_msg_code_set
/**
* Set code in an object of type of_meter_mod_failed_error_msg.
* @param obj Pointer to an object of type of_meter_mod_failed_error_msg.
* @param code The value to write into the object
*/
void
of_meter_mod_failed_error_msg_code_set(
of_meter_mod_failed_error_msg_t *obj,
uint16_t code)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_METER_MOD_FAILED_ERROR_MSG);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 10;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, code);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_meter_mod_failed_error_msg.c
示例8: of_bsn_set_lacp_request_actor_key_set
/**
* Set actor_key in an object of type of_bsn_set_lacp_request.
* @param obj Pointer to an object of type of_bsn_set_lacp_request.
* @param actor_key The value to write into the object
*/
void
of_bsn_set_lacp_request_actor_key_set(
of_bsn_set_lacp_request_t *obj,
uint16_t actor_key)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_SET_LACP_REQUEST);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 36;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, actor_key);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_bsn_set_lacp_request.c
示例9: of_action_push_pbb_ethertype_set
/**
* Set ethertype in an object of type of_action_push_pbb.
* @param obj Pointer to an object of type of_action_push_pbb.
* @param ethertype The value to write into the object
*/
void
of_action_push_pbb_ethertype_set(
of_action_push_pbb_t *obj,
uint16_t ethertype)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_ACTION_PUSH_PBB);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 4;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, ethertype);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_action_push_pbb.c
示例10: of_meter_band_drop_burst_size_set
/**
* Set burst_size in an object of type of_meter_band_drop.
* @param obj Pointer to an object of type of_meter_band_drop.
* @param burst_size The value to write into the object
*/
void
of_meter_band_drop_burst_size_set(
of_meter_band_drop_t *obj,
uint32_t burst_size)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_METER_BAND_DROP);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 8;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_set(wbuf, abs_offset, burst_size);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_meter_band_drop.c
示例11: of_flow_modify_out_group_get
/**
* Get out_group from an object of type of_flow_modify.
* @param obj Pointer to an object of type of_flow_modify.
* @param out_group Pointer to the child object of type
* uint32_t to be filled out.
*
*/
void
of_flow_modify_out_group_get(
of_flow_modify_t *obj,
uint32_t *out_group)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(IS_FLOW_MOD_SUBTYPE(obj->object_id));
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 40;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_get(wbuf, abs_offset, out_group);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:41,代码来源:of_flow_modify.c
示例12: of_oxm_ipv6_src_value_get
/**
* Get value from an object of type of_oxm_ipv6_src.
* @param obj Pointer to an object of type of_oxm_ipv6_src.
* @param value Pointer to the child object of type
* of_ipv6_t to be filled out.
*
*/
void
of_oxm_ipv6_src_value_get(
of_oxm_ipv6_src_t *obj,
of_ipv6_t *value)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_OXM_IPV6_SRC);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 4;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_ipv6_get(wbuf, abs_offset, value);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:40,代码来源:of_oxm_ipv6_src.c
示例13: of_bsn_shell_output_subtype_get
/**
* Get subtype from an object of type of_bsn_shell_output.
* @param obj Pointer to an object of type of_bsn_shell_output.
* @param subtype Pointer to the child object of type
* uint32_t to be filled out.
*
*/
void
of_bsn_shell_output_subtype_get(
of_bsn_shell_output_t *obj,
uint32_t *subtype)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_SHELL_OUTPUT);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
offset = 12;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_get(wbuf, abs_offset, subtype);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:39,代码来源:of_bsn_shell_output.c
示例14: of_flow_modify_match_set
/**
* Set match in an object of type of_flow_modify.
* @param obj Pointer to an object of type of_flow_modify.
* @param match Pointer to the child of type of_match_t.
*
* If the child's wire buffer is the same as the parent's, then
* nothing is done as the changes have already been registered in the
* parent. Otherwise, the data in the child's wire buffer is inserted
* into the parent's and the appropriate lengths are updated.
*/
int WARN_UNUSED_RESULT
of_flow_modify_match_set(
of_flow_modify_t *obj,
of_match_t *match)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
int cur_len = 0; /* Current length of object data */
int new_len, delta; /* For set, need new length and delta */
of_octets_t match_octets; /* Serialized string for match */
ASSERT(IS_FLOW_MOD_SUBTYPE(obj->object_id));
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
offset = 8;
cur_len = _WIRE_MATCH_PADDED_LEN(obj, offset);
break;
case OF_VERSION_1_1:
offset = 48;
cur_len = _WIRE_MATCH_PADDED_LEN(obj, offset);
break;
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 48;
cur_len = _WIRE_MATCH_PADDED_LEN(obj, offset);
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
ASSERT(cur_len >= 0 && cur_len < 64 * 1024);
/* Match object */
OF_TRY(of_match_serialize(ver, match, &match_octets));
new_len = match_octets.bytes;
of_wire_buffer_replace_data(wbuf, abs_offset, cur_len,
match_octets.data, new_len);
/* Free match serialized octets */
FREE(match_octets.data);
/* Not scalar, update lengths if needed */
delta = new_len - cur_len;
if (delta != 0) {
/* Update parent(s) */
of_object_parent_length_update((of_object_t *)obj, delta);
}
OF_LENGTH_CHECK_ASSERT(obj);
return OF_ERROR_NONE;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:70,代码来源:of_flow_modify.c
示例15: of_oxm_bsn_l3_interface_class_id_value_set
/**
* Set value in an object of type of_oxm_bsn_l3_interface_class_id.
* @param obj Pointer to an object of type of_oxm_bsn_l3_interface_class_id.
* @param value The value to write into the object
*/
void
of_oxm_bsn_l3_interface_class_id_value_set(
of_oxm_bsn_l3_interface_class_id_t *obj,
uint32_t value)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_OXM_BSN_L3_INTERFACE_CLASS_ID);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 4;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_set(wbuf, abs_offset, value);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:38,代码来源:of_oxm_bsn_l3_interface_class_id.c
示例16: of_packet_in_in_phy_port_set
/**
* Set in_phy_port in an object of type of_packet_in.
* @param obj Pointer to an object of type of_packet_in.
* @param in_phy_port The value to write into the object
*/
void
of_packet_in_in_phy_port_set(
of_packet_in_t *obj,
of_port_no_t in_phy_port)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_PACKET_IN);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_1:
offset = 16;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_port_no_set(ver, wbuf, abs_offset, in_phy_port);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_packet_in.c
示例17: of_queue_stats_reply_flags_set
/**
* Set flags in an object of type of_queue_stats_reply.
* @param obj Pointer to an object of type of_queue_stats_reply.
* @param flags The value to write into the object
*/
void
of_queue_stats_reply_flags_set(
of_queue_stats_reply_t *obj,
uint16_t flags)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_QUEUE_STATS_REPLY);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 10;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u16_set(wbuf, abs_offset, flags);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:40,代码来源:of_queue_stats_reply.c
示例18: of_bsn_controller_connection_uri_set
/**
* Set uri in an object of type of_bsn_controller_connection.
* @param obj Pointer to an object of type of_bsn_controller_connection.
* @param uri The value to write into the object
*/
void
of_bsn_controller_connection_uri_set(
of_bsn_controller_connection_t *obj,
of_desc_str_t uri)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_CONTROLLER_CONNECTION);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 8;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_desc_str_set(wbuf, abs_offset, uri);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_bsn_controller_connection.c
示例19: of_packet_out_buffer_id_get
/**
* Get buffer_id from an object of type of_packet_out.
* @param obj Pointer to an object of type of_packet_out.
* @param buffer_id Pointer to the child object of type
* uint32_t to be filled out.
*
*/
void
of_packet_out_buffer_id_get(
of_packet_out_t *obj,
uint32_t *buffer_id)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_PACKET_OUT);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_0:
case OF_VERSION_1_1:
case OF_VERSION_1_2:
case OF_VERSION_1_3:
offset = 8;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u32_get(wbuf, abs_offset, buffer_id);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:42,代码来源:of_packet_out.c
示例20: of_bsn_tlv_tx_packets_value_set
/**
* Set value in an object of type of_bsn_tlv_tx_packets.
* @param obj Pointer to an object of type of_bsn_tlv_tx_packets.
* @param value The value to write into the object
*/
void
of_bsn_tlv_tx_packets_value_set(
of_bsn_tlv_tx_packets_t *obj,
uint64_t value)
{
of_wire_buffer_t *wbuf;
int offset = 0; /* Offset of value relative to the start obj */
int abs_offset; /* Offset of value relative to start of wbuf */
of_version_t ver;
ASSERT(obj->object_id == OF_BSN_TLV_TX_PACKETS);
ver = obj->version;
wbuf = OF_OBJECT_TO_WBUF(obj);
ASSERT(wbuf != NULL);
/* By version, determine offset and current length (where needed) */
switch (ver) {
case OF_VERSION_1_3:
offset = 4;
break;
default:
ASSERT(0);
}
abs_offset = OF_OBJECT_ABSOLUTE_OFFSET(obj, offset);
ASSERT(abs_offset >= 0);
of_wire_buffer_u64_set(wbuf, abs_offset, value);
OF_LENGTH_CHECK_ASSERT(obj);
return ;
}
开发者ID:milouxk,项目名称:loxigen-artifacts,代码行数:37,代码来源:of_bsn_tlv_tx_packets.c
注:本文中的OF_OBJECT_ABSOLUTE_OFFSET函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论