From b2984f540dd8c2697603dda5d245bc1106ce2dd0 Mon Sep 17 00:00:00 2001 From: Praveen K V Date: Mon, 11 May 2015 16:48:08 +0530 Subject: [PATCH] Support for >64K VMI and VRF Few data structures in agent were using uint16_t to store VMI and VRF index. Modified to use uint32_t Closes-bug: #1453698 Change-Id: Ic10fd3beeaa286675bf49bfd35da4de4415ed9ae --- src/vnsw/agent/kstate/vrf_assign_kstate.h | 2 +- src/vnsw/agent/oper/interface.cc | 2 +- src/vnsw/agent/oper/interface.h | 2 +- src/vnsw/agent/pkt/agent_stats.h | 12 +++++------ src/vnsw/agent/pkt/flow_table.h | 4 ++-- src/vnsw/agent/pkt/pkt_flow_info.h | 8 +++---- src/vnsw/agent/pkt/pkt_handler.cc | 2 +- src/vnsw/agent/pkt/pkt_handler.h | 10 ++++----- src/vnsw/agent/pkt/proto_handler.cc | 6 +++--- src/vnsw/agent/pkt/proto_handler.h | 21 ++++++++++--------- src/vnsw/agent/pkt/test/test_flowtable.cc | 14 ++++++------- src/vnsw/agent/pkt/test/test_pkt_flow.cc | 2 +- src/vnsw/agent/services/arp_handler.cc | 2 +- src/vnsw/agent/services/arp_handler.h | 6 +++--- src/vnsw/agent/services/arp_proto.h | 6 +++--- src/vnsw/agent/services/dhcp_handler.cc | 4 ++-- src/vnsw/agent/services/dhcp_proto.h | 6 +++--- src/vnsw/agent/services/dhcpv6_handler.cc | 4 ++-- src/vnsw/agent/services/dns_handler.cc | 4 ++-- src/vnsw/agent/services/icmp_handler.cc | 4 ++-- src/vnsw/agent/services/icmpv6_handler.cc | 4 ++-- src/vnsw/agent/services/icmpv6_handler.h | 4 ++-- .../agent/vrouter/ksync/vrf_assign_ksync.cc | 2 +- .../agent/vrouter/ksync/vrf_assign_ksync.h | 2 +- 24 files changed, 67 insertions(+), 66 deletions(-) diff --git a/src/vnsw/agent/kstate/vrf_assign_kstate.h b/src/vnsw/agent/kstate/vrf_assign_kstate.h index 34de0290a89..1aa9727ad14 100644 --- a/src/vnsw/agent/kstate/vrf_assign_kstate.h +++ b/src/vnsw/agent/kstate/vrf_assign_kstate.h @@ -15,7 +15,7 @@ class VrfAssignKState: public KState { }; struct VrfAssignContext { - uint16_t vif_index_; + uint32_t vif_index_; int marker_; }; diff --git a/src/vnsw/agent/oper/interface.cc b/src/vnsw/agent/oper/interface.cc index 682fa88cb53..8b3dff5ffca 100644 --- a/src/vnsw/agent/oper/interface.cc +++ b/src/vnsw/agent/oper/interface.cc @@ -283,7 +283,7 @@ Interface *InterfaceTable::FindInterfaceFromMetadataIp(const Ip4Address &ip) { return index_table_.At(addr & 0xFFFF); } -void InterfaceTable::VmPortToMetaDataIp(uint16_t index, uint32_t vrfid, +void InterfaceTable::VmPortToMetaDataIp(uint32_t index, uint32_t vrfid, Ip4Address *addr) { uint32_t ip = METADATA_IP_ADDR & 0xFFFF0000; ip += (index & 0xFFFF); diff --git a/src/vnsw/agent/oper/interface.h b/src/vnsw/agent/oper/interface.h index e7d725d814d..517e73490c0 100644 --- a/src/vnsw/agent/oper/interface.h +++ b/src/vnsw/agent/oper/interface.h @@ -340,7 +340,7 @@ class InterfaceTable : public AgentOperDBTable { std::string *vm_ip, std::string *vm_uuid, std::string *vm_project_uuid); - void VmPortToMetaDataIp(uint16_t ifindex, uint32_t vrfid, Ip4Address *addr); + void VmPortToMetaDataIp(uint32_t ifindex, uint32_t vrfid, Ip4Address *addr); // Dhcp Snoop Map entries const Ip4Address GetDhcpSnoopEntry(const std::string &ifname); diff --git a/src/vnsw/agent/pkt/agent_stats.h b/src/vnsw/agent/pkt/agent_stats.h index 218a6ddeca7..1357e683714 100644 --- a/src/vnsw/agent/pkt/agent_stats.h +++ b/src/vnsw/agent/pkt/agent_stats.h @@ -30,7 +30,7 @@ class AgentStats { void Reset(); void incr_xmpp_reconnects(uint8_t idx) {xmpp_reconnect_[idx]++;} - uint16_t xmpp_reconnects(uint8_t idx) const { + uint32_t xmpp_reconnects(uint8_t idx) const { return xmpp_reconnect_[idx]; } @@ -41,7 +41,7 @@ class AgentStats { uint64_t xmpp_out_msgs(uint8_t idx) const {return xmpp_out_msgs_[idx];} void incr_sandesh_reconnects() {sandesh_reconnects_++;} - uint16_t sandesh_reconnects() const {return sandesh_reconnects_;} + uint32_t sandesh_reconnects() const {return sandesh_reconnects_;} void incr_sandesh_in_msgs() {sandesh_in_msgs_++;} uint64_t sandesh_in_msgs() const {return sandesh_in_msgs_;} @@ -50,7 +50,7 @@ class AgentStats { uint64_t sandesh_out_msgs() const {return sandesh_out_msgs_;} void incr_sandesh_http_sessions() {sandesh_http_sessions_++;} - uint16_t sandesh_http_sessions() const {return sandesh_http_sessions_;} + uint32_t sandesh_http_sessions() const {return sandesh_http_sessions_;} void incr_flow_created() {flow_created_++;} uint64_t flow_created() const {return flow_created_;} @@ -103,14 +103,14 @@ class AgentStats { uint64_t out_bytes() const {return out_bytes_;} private: Agent *agent_; - uint16_t xmpp_reconnect_[MAX_XMPP_SERVERS]; + uint32_t xmpp_reconnect_[MAX_XMPP_SERVERS]; uint64_t xmpp_in_msgs_[MAX_XMPP_SERVERS]; uint64_t xmpp_out_msgs_[MAX_XMPP_SERVERS]; - uint16_t sandesh_reconnects_; + uint32_t sandesh_reconnects_; uint64_t sandesh_in_msgs_; uint64_t sandesh_out_msgs_; - uint16_t sandesh_http_sessions_; + uint32_t sandesh_http_sessions_; // Number of NH created uint32_t nh_count_; diff --git a/src/vnsw/agent/pkt/flow_table.h b/src/vnsw/agent/pkt/flow_table.h index 1500e710ccf..29fc295d631 100644 --- a/src/vnsw/agent/pkt/flow_table.h +++ b/src/vnsw/agent/pkt/flow_table.h @@ -239,7 +239,7 @@ struct FlowData { uint32_t vrf; uint32_t mirror_vrf; - uint16_t dest_vrf; + uint32_t dest_vrf; uint32_t component_nh_idx; @@ -250,7 +250,7 @@ struct FlowData { uint16_t drop_reason; bool vrf_assign_evaluated; bool pending_recompute; - uint16_t if_index_info; + uint32_t if_index_info; TunnelInfo tunnel_info; // map for references to the routes which were ignored due to more specific // route this will be used to trigger flow re-compute to use more specific diff --git a/src/vnsw/agent/pkt/pkt_flow_info.h b/src/vnsw/agent/pkt/pkt_flow_info.h index 8fde45db133..158ba5ffde3 100644 --- a/src/vnsw/agent/pkt/pkt_flow_info.h +++ b/src/vnsw/agent/pkt/pkt_flow_info.h @@ -31,7 +31,7 @@ struct PktControlInfo { bool vlan_nh_; uint16_t vlan_tag_; // The NH-ID field used as key in the flow - uint16_t nh_; + uint32_t nh_; }; class PktFlowInfo { @@ -115,14 +115,14 @@ class PktFlowInfo { uint32_t nat_sport; uint32_t nat_dport; // VRF for matching the NAT flow - uint16_t nat_vrf; + uint32_t nat_vrf; // Modified VRF for the NAT flow // After flow processing, packet is assigned this VRF - uint16_t nat_dest_vrf; + uint32_t nat_dest_vrf; // Modified VRF for the forward flow // After flow processing, packet is assigned this VRF - uint16_t dest_vrf; + uint32_t dest_vrf; // Intermediate fields used in creating flows const AclDBEntry *acl; diff --git a/src/vnsw/agent/pkt/pkt_handler.cc b/src/vnsw/agent/pkt/pkt_handler.cc index 2f66fa0a2da..c68dfba892e 100644 --- a/src/vnsw/agent/pkt/pkt_handler.cc +++ b/src/vnsw/agent/pkt/pkt_handler.cc @@ -787,7 +787,7 @@ bool PktHandler::IsGwPacket(const Interface *intf, const IpAddress &dst_ip) { return false; } -bool PktHandler::IsValidInterface(uint16_t ifindex, Interface **interface) { +bool PktHandler::IsValidInterface(uint32_t ifindex, Interface **interface) { Interface *intf = agent_->interface_table()->FindInterface(ifindex); if (intf == NULL) { PKT_TRACE(Err, "Invalid interface index <" << ifindex << ">"); diff --git a/src/vnsw/agent/pkt/pkt_handler.h b/src/vnsw/agent/pkt/pkt_handler.h index 7d261fba7c0..d1ce833e931 100644 --- a/src/vnsw/agent/pkt/pkt_handler.h +++ b/src/vnsw/agent/pkt/pkt_handler.h @@ -123,11 +123,11 @@ struct AgentHdr { ifindex(-1), vrf(-1), cmd(-1), cmd_param(-1), cmd_param_1(-1), nh(-1), flow_index(-1), mtu(0) {} - AgentHdr(uint16_t ifindex_p, uint16_t vrf_p, uint16_t cmd_p) : + AgentHdr(uint32_t ifindex_p, uint32_t vrf_p, uint16_t cmd_p) : ifindex(ifindex_p), vrf(vrf_p), cmd(cmd_p), cmd_param(-1), cmd_param_1(-1), nh(-1), flow_index(-1), mtu(0) {} - AgentHdr(uint16_t ifindex_p, uint16_t vrf_p, uint16_t cmd_p, + AgentHdr(uint32_t ifindex_p, uint32_t vrf_p, uint16_t cmd_p, uint32_t param1, uint32_t param2) : ifindex(ifindex_p), vrf(vrf_p), cmd(cmd_p), cmd_param(param1), cmd_param_1(param2), nh(-1), flow_index(-1), mtu(0) {} @@ -135,12 +135,12 @@ struct AgentHdr { ~AgentHdr() {} // Fields from agent_hdr - uint16_t ifindex; + uint32_t ifindex; uint32_t vrf; uint16_t cmd; uint32_t cmd_param; uint32_t cmd_param_1; - uint16_t nh; + uint32_t nh; uint32_t flow_index; uint16_t mtu; }; @@ -311,7 +311,7 @@ class PktHandler { void SetOuterIp(PktInfo *pkt_info, uint8_t *pkt); bool IsDHCPPacket(PktInfo *pkt_info); - bool IsValidInterface(uint16_t ifindex, Interface **interface); + bool IsValidInterface(uint32_t ifindex, Interface **interface); bool IsToRDevice(uint32_t vrf_id, const IpAddress &ip); bool IsManagedTORPacket(Interface *intf, PktInfo *pkt_info, PktType::Type &pkt_type, uint8_t *pkt); diff --git a/src/vnsw/agent/pkt/proto_handler.cc b/src/vnsw/agent/pkt/proto_handler.cc index 6294f7e4610..c4827978cfd 100644 --- a/src/vnsw/agent/pkt/proto_handler.cc +++ b/src/vnsw/agent/pkt/proto_handler.cc @@ -22,12 +22,12 @@ uint32_t ProtoHandler::EncapHeaderLen() const { } // send packet to the pkt0 interface -void ProtoHandler::Send(uint16_t itf, uint16_t vrf, uint16_t cmd, +void ProtoHandler::Send(uint32_t itf, uint32_t vrf, uint16_t cmd, PktHandler::PktModuleName mod) { Send(itf, vrf, cmd, 0, 0, mod); } -void ProtoHandler::Send(uint16_t itf, uint16_t vrf, uint16_t cmd, +void ProtoHandler::Send(uint32_t itf, uint32_t vrf, uint16_t cmd, uint32_t param1, uint32_t param2, PktHandler::PktModuleName mod) { // If pkt_info_->pkt is non-NULL, pkt is freed in destructor of pkt_info_ @@ -85,7 +85,7 @@ int ProtoHandler::EthHdr(char *buff, uint16_t len, const Interface *interface, return EthHdr(buff, len, src, dest, proto, vlan_id); } -int ProtoHandler::EthHdr(char *buff, uint16_t len, uint16_t ifindex, +int ProtoHandler::EthHdr(char *buff, uint16_t len, uint32_t ifindex, const MacAddress &src, const MacAddress &dest, const uint16_t proto) { const Interface *intf = agent()->interface_table()->FindInterface(ifindex); diff --git a/src/vnsw/agent/pkt/proto_handler.h b/src/vnsw/agent/pkt/proto_handler.h index b9426f2881e..cbc8b9f4d9d 100644 --- a/src/vnsw/agent/pkt/proto_handler.h +++ b/src/vnsw/agent/pkt/proto_handler.h @@ -33,8 +33,8 @@ class ProtoHandler { virtual bool Run() = 0; - void Send(uint16_t, uint16_t, uint16_t, PktHandler::PktModuleName); - void Send(uint16_t itf, uint16_t vrf, uint16_t cmd, + void Send(uint32_t itf, uint32_t vrf, uint16_t, PktHandler::PktModuleName); + void Send(uint32_t itf, uint32_t vrf, uint16_t cmd, uint32_t param1, uint32_t param2, PktHandler::PktModuleName mod); int EthHdr(const MacAddress &src, const MacAddress &dest, @@ -44,22 +44,23 @@ class ProtoHandler { int EthHdr(char *buff, uint16_t len, const Interface *interface, const MacAddress &src, const MacAddress &dest, const uint16_t proto); - int EthHdr(char *buff, uint16_t len, uint16_t ifindex, + int EthHdr(char *buff, uint16_t len, uint32_t ifindex, const MacAddress &src, const MacAddress &dest, const uint16_t proto); void VlanHdr(uint8_t *ptr, uint16_t tci); - void IpHdr(uint16_t, in_addr_t, in_addr_t, uint8_t, + void IpHdr(uint16_t len, in_addr_t src, in_addr_t dest, uint8_t protocol, uint16_t id, uint8_t ttl); - uint16_t IpHdr(char *, uint16_t, uint16_t, in_addr_t, in_addr_t, - uint8_t, uint16_t id, uint8_t ttl); + uint16_t IpHdr(char *buff, uint16_t buf_len, uint16_t len, in_addr_t src, + in_addr_t dest, uint8_t protocol, uint16_t id, uint8_t ttl); void Ip6Hdr(ip6_hdr *ip, uint16_t plen, uint8_t next_header, uint8_t hlim, uint8_t *src, uint8_t *dest); - void UdpHdr(uint16_t, in_addr_t, uint16_t, in_addr_t, uint16_t); + void UdpHdr(uint16_t len, in_addr_t src, uint16_t src_port, in_addr_t dest, + uint16_t dest_port); void UdpHdr(uint16_t len, const uint8_t *src, uint16_t src_port, const uint8_t *dest, uint16_t dest_port, uint8_t next_hdr); - uint16_t UdpHdr(udphdr *, uint16_t, uint16_t, in_addr_t, uint16_t, - in_addr_t, uint16_t); + uint16_t UdpHdr(udphdr *udp, uint16_t buf_len, uint16_t len, in_addr_t src, + uint16_t src_port, in_addr_t dest, uint16_t dest_port); uint16_t IcmpHdr(char *buff, uint16_t buf_len, uint8_t type, uint8_t code, uint16_t word1, uint16_t word2); void IcmpChecksum(char *buff, uint16_t buf_len); @@ -74,7 +75,7 @@ class ProtoHandler { Agent *agent() { return agent_; } uint32_t GetVrfIndex() const { return pkt_info_->GetAgentHdr().vrf; } - uint16_t GetInterfaceIndex() const { + uint32_t GetInterfaceIndex() const { return pkt_info_->GetAgentHdr().ifindex; } uint16_t GetLength() const { return pkt_info_->len; } diff --git a/src/vnsw/agent/pkt/test/test_flowtable.cc b/src/vnsw/agent/pkt/test/test_flowtable.cc index 9d7a2a203f2..8208336249d 100644 --- a/src/vnsw/agent/pkt/test/test_flowtable.cc +++ b/src/vnsw/agent/pkt/test/test_flowtable.cc @@ -15,7 +15,7 @@ const std::string svn_name("svn"); const std::string dvn_name("dvn"); struct TestFlowKey { - uint16_t vrfid_; + uint32_t vrfid_; const char *sip_; const char *dip_; uint8_t proto_; @@ -23,15 +23,15 @@ struct TestFlowKey { uint16_t dport_; const std::string *svn_; const std::string *dvn_; - uint16_t ifindex_; - uint16_t vn_; - uint16_t vm_; + uint32_t ifindex_; + uint32_t vn_; + uint32_t vm_; uint32_t nh_; - TestFlowKey(uint16_t vrf, const char *sip, const char *dip, uint8_t proto, + TestFlowKey(uint32_t vrf, const char *sip, const char *dip, uint8_t proto, uint16_t sport, uint16_t dport, const std::string &svn, - const std::string &dvn, uint16_t ifindex, uint16_t vn, - uint16_t vm, uint32_t nh) : + const std::string &dvn, uint32_t ifindex, uint32_t vn, + uint32_t vm, uint32_t nh) : vrfid_(vrf), sip_(sip), dip_(dip), proto_(proto), sport_(sport), dport_(dport), svn_(&svn), dvn_(&dvn), ifindex_(ifindex), vn_(vn), vm_(vm), nh_(nh) { diff --git a/src/vnsw/agent/pkt/test/test_pkt_flow.cc b/src/vnsw/agent/pkt/test/test_pkt_flow.cc index 029f8246970..89c9dfd3870 100644 --- a/src/vnsw/agent/pkt/test/test_pkt_flow.cc +++ b/src/vnsw/agent/pkt/test/test_pkt_flow.cc @@ -16,7 +16,7 @@ void RouterIdDepInit(Agent *agent) { } struct TestFlowKey { - uint16_t vrfid_; + uint32_t vrfid_; const char *sip_; const char *dip_; uint8_t proto_; diff --git a/src/vnsw/agent/services/arp_handler.cc b/src/vnsw/agent/services/arp_handler.cc index b1effe40a9e..d6ffd153e60 100644 --- a/src/vnsw/agent/services/arp_handler.cc +++ b/src/vnsw/agent/services/arp_handler.cc @@ -312,7 +312,7 @@ uint16_t ArpHandler::ArpHdr(const MacAddress &smac, in_addr_t sip, void ArpHandler::SendArp(uint16_t op, const MacAddress &smac, in_addr_t sip, const MacAddress &tmac, in_addr_t tip, - uint16_t itf, uint16_t vrf) { + uint32_t itf, uint32_t vrf) { if (pkt_info_->packet_buffer() == NULL) { pkt_info_->AllocPacketBuffer(agent(), PktHandler::ARP, ARP_TX_BUFF_LEN, diff --git a/src/vnsw/agent/services/arp_handler.h b/src/vnsw/agent/services/arp_handler.h index 6680e15b3b0..acacf14a78f 100644 --- a/src/vnsw/agent/services/arp_handler.h +++ b/src/vnsw/agent/services/arp_handler.h @@ -21,7 +21,7 @@ class ArpHandler : public ProtoHandler { bool Run(); void SendArp(uint16_t op, const MacAddress &smac, in_addr_t sip, const MacAddress &tmac, in_addr_t tip, - uint16_t itf, uint16_t vrf); + uint32_t itf, uint32_t vrf); friend void intrusive_ptr_add_ref(const ArpHandler *p); friend void intrusive_ptr_release(const ArpHandler *p); @@ -29,8 +29,8 @@ class ArpHandler : public ProtoHandler { bool HandlePacket(); bool HandleMessage(); void EntryDelete(ArpKey &key); - uint16_t ArpHdr(const MacAddress &, in_addr_t, const MacAddress &, - in_addr_t, uint16_t); + uint16_t ArpHdr(const MacAddress &smac, in_addr_t sip, + const MacAddress &tmac, in_addr_t tip, uint16_t op); ether_arp *arp_; in_addr_t arp_tpa_; diff --git a/src/vnsw/agent/services/arp_proto.h b/src/vnsw/agent/services/arp_proto.h index 19456aba2cd..308834ec288 100644 --- a/src/vnsw/agent/services/arp_proto.h +++ b/src/vnsw/agent/services/arp_proto.h @@ -94,14 +94,14 @@ class ArpProto : public Proto { const InterfaceArpMap& interface_arp_map() { return interface_arp_map_; } Interface *ip_fabric_interface() const { return ip_fabric_interface_; } - uint16_t ip_fabric_interface_index() const { + uint32_t ip_fabric_interface_index() const { return ip_fabric_interface_index_; } const MacAddress &ip_fabric_interface_mac() const { return ip_fabric_interface_mac_; } void set_ip_fabric_interface(Interface *itf) { ip_fabric_interface_ = itf; } - void set_ip_fabric_interface_index(uint16_t ind) { + void set_ip_fabric_interface_index(uint32_t ind) { ip_fabric_interface_index_ = ind; } void set_ip_fabric_interface_mac(const MacAddress &mac) { @@ -171,7 +171,7 @@ class ArpProto : public Proto { ArpCache arp_cache_; ArpStats arp_stats_; bool run_with_vrouter_; - uint16_t ip_fabric_interface_index_; + uint32_t ip_fabric_interface_index_; MacAddress ip_fabric_interface_mac_; Interface *ip_fabric_interface_; ArpEntry *gratuitous_arp_entry_; diff --git a/src/vnsw/agent/services/dhcp_handler.cc b/src/vnsw/agent/services/dhcp_handler.cc index 6234dbb67f2..c3b8e2fb520 100644 --- a/src/vnsw/agent/services/dhcp_handler.cc +++ b/src/vnsw/agent/services/dhcp_handler.cc @@ -1021,9 +1021,9 @@ void DhcpHandler::SendDhcpResponse() { UpdateStats(); FillDhcpResponse(dest_mac, src_ip, dest_ip, siaddr, yiaddr); - uint16_t interface = + uint32_t interface = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? - (uint16_t)pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); + pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); uint16_t command = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? (uint16_t)AgentHdr::TX_ROUTE : AgentHdr::TX_SWITCH; diff --git a/src/vnsw/agent/services/dhcp_proto.h b/src/vnsw/agent/services/dhcp_proto.h index dd385949783..2d853201a6c 100644 --- a/src/vnsw/agent/services/dhcp_proto.h +++ b/src/vnsw/agent/services/dhcp_proto.h @@ -67,10 +67,10 @@ class DhcpProto : public Proto { Interface *ip_fabric_interface() const { return ip_fabric_interface_; } void set_ip_fabric_interface(Interface *itf) { ip_fabric_interface_ = itf; } - uint16_t ip_fabric_interface_index() const { + uint32_t ip_fabric_interface_index() const { return ip_fabric_interface_index_; } - void set_ip_fabric_interface_index(uint16_t ind) { + void set_ip_fabric_interface_index(uint32_t ind) { ip_fabric_interface_index_ = ind; } const MacAddress &ip_fabric_interface_mac() const { @@ -102,7 +102,7 @@ class DhcpProto : public Proto { bool run_with_vrouter_; bool dhcp_relay_mode_; Interface *ip_fabric_interface_; - uint16_t ip_fabric_interface_index_; + uint32_t ip_fabric_interface_index_; MacAddress ip_fabric_interface_mac_; DBTableBase::ListenerId iid_; DhcpStats stats_; diff --git a/src/vnsw/agent/services/dhcpv6_handler.cc b/src/vnsw/agent/services/dhcpv6_handler.cc index 99cf8d741c5..7fbf5cb4501 100644 --- a/src/vnsw/agent/services/dhcpv6_handler.cc +++ b/src/vnsw/agent/services/dhcpv6_handler.cc @@ -636,9 +636,9 @@ void Dhcpv6Handler::SendDhcpResponse() { FillDhcpResponse(MacAddress(pkt_info_->eth->ether_shost), config_.dns_addr.to_v6(), pkt_info_->ip_saddr.to_v6()); - uint16_t interface = + uint32_t interface = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? - (uint16_t)pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); + pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); uint16_t command = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? (uint16_t)AgentHdr::TX_ROUTE : AgentHdr::TX_SWITCH; diff --git a/src/vnsw/agent/services/dns_handler.cc b/src/vnsw/agent/services/dns_handler.cc index d049dd2ecad..0a154e88976 100644 --- a/src/vnsw/agent/services/dns_handler.cc +++ b/src/vnsw/agent/services/dns_handler.cc @@ -804,9 +804,9 @@ void DnsHandler::SendDnsResponse() { (agent()->interface_table()->FindActiveEntry(&key)); if (pkt_itf) { UpdateStats(); - uint16_t interface = + uint32_t interface = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? - (uint16_t)pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); + pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex(); uint16_t command = (pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? (uint16_t)AgentHdr::TX_ROUTE : AgentHdr::TX_SWITCH; diff --git a/src/vnsw/agent/services/icmp_handler.cc b/src/vnsw/agent/services/icmp_handler.cc index c83e66c3e01..575006c0f5c 100644 --- a/src/vnsw/agent/services/icmp_handler.cc +++ b/src/vnsw/agent/services/icmp_handler.cc @@ -93,9 +93,9 @@ void IcmpHandler::SendResponse(VmInterface *vm_intf) { IcmpChecksum((char *)hdr, icmp_len_); pkt_info_->set_len(len); - uint16_t interface = + uint32_t interface = ((pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? - (uint16_t)pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex()); + pkt_info_->agent_hdr.cmd_param : GetInterfaceIndex()); uint16_t command = ((pkt_info_->agent_hdr.cmd == AgentHdr::TRAP_TOR_CONTROL_PKT) ? AgentHdr::TX_ROUTE : AgentHdr::TX_SWITCH); diff --git a/src/vnsw/agent/services/icmpv6_handler.cc b/src/vnsw/agent/services/icmpv6_handler.cc index ccf21dbcf6d..0ba53f8829f 100644 --- a/src/vnsw/agent/services/icmpv6_handler.cc +++ b/src/vnsw/agent/services/icmpv6_handler.cc @@ -176,7 +176,7 @@ uint16_t Icmpv6Handler::FillRouterAdvertisement(uint8_t *buf, uint8_t *src, return offset; } -void Icmpv6Handler::SendRAResponse(uint16_t ifindex, uint16_t vrfindex, +void Icmpv6Handler::SendRAResponse(uint32_t ifindex, uint32_t vrfindex, uint8_t *src_ip, uint8_t *dest_ip, const MacAddress &dest_mac, const Ip6Address &prefix, uint8_t plen) { @@ -200,7 +200,7 @@ void Icmpv6Handler::SendPingResponse() { ntohs(pkt_info_->ip6->ip6_plen)); } -void Icmpv6Handler::SendIcmpv6Response(uint16_t ifindex, uint16_t vrfindex, +void Icmpv6Handler::SendIcmpv6Response(uint32_t ifindex, uint32_t vrfindex, uint8_t *src_ip, uint8_t *dest_ip, const MacAddress &dest_mac, uint16_t len) { diff --git a/src/vnsw/agent/services/icmpv6_handler.h b/src/vnsw/agent/services/icmpv6_handler.h index e6959306ae0..9e14d2065c9 100644 --- a/src/vnsw/agent/services/icmpv6_handler.h +++ b/src/vnsw/agent/services/icmpv6_handler.h @@ -24,12 +24,12 @@ class Icmpv6Handler : public ProtoHandler { uint16_t FillRouterAdvertisement(uint8_t *buf, uint8_t *src, uint8_t *dest, const Ip6Address &prefix, uint8_t plen); - void SendRAResponse(uint16_t ifindex, uint16_t vrfindex, + void SendRAResponse(uint32_t ifindex, uint32_t vrfindex, uint8_t *src_ip, uint8_t *dest_ip, const MacAddress &dest_mac, const Ip6Address &prefix, uint8_t plen); void SendPingResponse(); - void SendIcmpv6Response(uint16_t ifindex, uint16_t vrfindex, + void SendIcmpv6Response(uint32_t ifindex, uint32_t vrfindex, uint8_t *src_ip, uint8_t *dest_ip, const MacAddress &dest_mac, uint16_t len); diff --git a/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.cc b/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.cc index 6945bebf8a7..5ec478680fc 100644 --- a/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.cc +++ b/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.cc @@ -98,7 +98,7 @@ std::string VrfAssignKSyncEntry::ToString() const { bool VrfAssignKSyncEntry::Sync(DBEntry *e) { bool ret = false; const VrfAssign *vassign = static_cast(e); - uint16_t vrf_id = 0; + uint32_t vrf_id = 0; if (vassign->GetVrf()) { vrf_id = vassign->GetVrf()->vrf_id(); diff --git a/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.h b/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.h index 7c8cdd0be1e..7ba71ea4a90 100644 --- a/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.h +++ b/src/vnsw/agent/vrouter/ksync/vrf_assign_ksync.h @@ -42,7 +42,7 @@ class VrfAssignKSyncEntry : public KSyncNetlinkDBEntry { VrfAssignKSyncObject *ksync_obj_; KSyncEntryPtr interface_; uint16_t vlan_tag_; - uint16_t vrf_id_; + uint32_t vrf_id_; KSyncEntryPtr nh_; DISALLOW_COPY_AND_ASSIGN(VrfAssignKSyncEntry); };