Have you looked at the code in odp-util.c that prints these structures, e.g. format_odp_key_attr()?
On Tue, Feb 24, 2015 at 05:00:31PM +0000, Chetan Bali wrote: > Hi Ben, > > Thanks for the quick response. Please find the code snippet below: > > This below function is called from flow_put in dpif class code. > > uint8_t dpif_tunnel_parse_actions(s_action_t *action_list, const struct > nlattr *actions, size_t actions_len, struct flow_tnl *tun_param) > { > if(OVS_LIKELY(NULL != actions)) > { > NL_ATTR_FOR_EACH_UNSAFE(a, len, actions, actions_len) > { > switch (nl_attr_type(a)) > { > case OVS_ACTION_ATTR_SET: > VLOG_INFO("Action type is ACTION_SET \n"); > action_list[num_action].action_type = > ACTION_SET_IPV4_TUNNEL; > if (nla_type(nla_data(a)) == OVS_KEY_ATTR_TUNNEL) > { > tun_param = nla_data(nla_data(a)); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL TUN_ID : > %u\n",tun_param->tun_id); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL SRC_ADRR : > %x\n",ntohl(tun_param->ipv4_src)); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL SRC_DST : > %x\n",ntohl(tun_param->ipv4_dst)); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL TUN_FLAG : > %u\n",tun_param->tun_flags); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL TOS : > %u\n",tun_param->ipv4_tos); > VLOG_INFO(" OVS_ACTION_ATTR_TUNNEL TTL : > %u\n",tun_param->ipv4_ttl); > } > > We are not getting correct values of tun_id, tun_src, tun_dst, tun_ttl, etc. > > It will be great if you could help us here. > > Thanks > Chetan Bali > > -----Original Message----- > From: Ben Pfaff [mailto:b...@nicira.com] > Sent: 24 February 2015 22:15 > To: Chetan Bali > Cc: dev@openvswitch.org; disc...@openvswitch.org; Mohit Malik > Subject: Re: [ovs-discuss] query related to GRE encapsulation > > On Tue, Feb 24, 2015 at 01:33:29PM +0000, Chetan Bali wrote: > > I am configuring gre-port in my ovs bridge, for establishing > > gre-tunnel between 2 machines. I am trying to parse the tunnelling key > > params sent by OVS while adding flow, when it sets action as > > OVS_ACTION_ATTR_SET. I am parsing the tun-key attributes in dpif-linux.c in > > exact manner as ovs does, i.e., nla_data(nla_data(action)) where action is > > in "nlattr" type. Tun-key params that I am trying to fetch are as per > > struct "ovs_key_ipv4_tunnel" i.e., struct ovs_key_ipv4_tunnel { > > __be64 tun_id; > > __be32 ipv4_src; > > __be32 ipv4_dst; > > __be16 tun_flags; > > u8 ipv4_tos; > > u8 ipv4_ttl; > > }; > > The problem is that, while parsing I am getting incorrect tun-key params, > > whereas I can see by putting prints that openvswitchd.ko is getting correct > > tun-key params. > > I guess you're doing something wrong. Show us your code? > "DISCLAIMER: This message is proprietary to Aricent and is intended solely > for the use of the individual to whom it is addressed. It may contain > privileged or confidential information and should not be circulated or used > for any purpose other than for what it is intended. If you have received this > message in error, please notify the originator immediately. If you are not > the intended recipient, you are notified that you are strictly prohibited > from using, copying, altering, or disclosing the contents of this message. > Aricent accepts no responsibility for loss or damage arising from the use of > the information transmitted by this email including damage from virus." _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev