mirror of
https://github.com/openvswitch/ovs
synced 2025-10-23 14:57:06 +00:00
Merge citrix into master.
This was a somewhat difficult merge since there was a fair amount of superficially divergent development on the two branches, especially in the datapath. This has been build-tested against XenServer 5.5.0 and XenServer 5.7.0 build 15122. It has been booted and connected to XenCenter on 5.5.0. The merge revealed a couple of outstanding bugs, which will be fixed on citrix and then merged back into master.
This commit is contained in:
@@ -411,7 +411,7 @@ dhclient_configure_netdev(struct dhclient *cli)
|
||||
}
|
||||
|
||||
if (!error && router.s_addr) {
|
||||
error = netdev_add_router(router);
|
||||
error = netdev_add_router(cli->netdev, router);
|
||||
if (error) {
|
||||
VLOG_ERR("failed to add default route to "IP_FMT" on %s: %s",
|
||||
IP_ARGS(&router), netdev_get_name(cli->netdev),
|
||||
@@ -882,7 +882,7 @@ dhclient_msg_init(struct dhclient *cli, enum dhcp_msg_type type,
|
||||
msg->xid = cli->xid;
|
||||
msg->secs = cli->secs;
|
||||
msg->type = type;
|
||||
memcpy(msg->chaddr, netdev_get_etheraddr(cli->netdev), ETH_ADDR_LEN);
|
||||
netdev_get_etheraddr(cli->netdev, msg->chaddr);
|
||||
}
|
||||
|
||||
/* If time goes backward this returns a large number, which makes it look like
|
||||
@@ -905,9 +905,13 @@ timeout(struct dhclient *cli, unsigned int secs)
|
||||
static bool
|
||||
do_receive_msg(struct dhclient *cli, struct dhcp_msg *msg)
|
||||
{
|
||||
uint8_t cli_mac[ETH_ADDR_LEN];
|
||||
struct ofpbuf b;
|
||||
int mtu;
|
||||
|
||||
ofpbuf_init(&b, netdev_get_mtu(cli->netdev) + VLAN_ETH_HEADER_LEN);
|
||||
netdev_get_mtu(cli->netdev, &mtu);
|
||||
ofpbuf_init(&b, mtu + VLAN_ETH_HEADER_LEN);
|
||||
netdev_get_etheraddr(cli->netdev, cli_mac);
|
||||
for (; cli->received < 50; cli->received++) {
|
||||
const struct ip_header *ip;
|
||||
const struct dhcp_header *dhcp;
|
||||
@@ -925,8 +929,7 @@ do_receive_msg(struct dhclient *cli, struct dhcp_msg *msg)
|
||||
|| flow.nw_proto != IP_TYPE_UDP
|
||||
|| flow.tp_dst != htons(DHCP_CLIENT_PORT)
|
||||
|| !(eth_addr_is_broadcast(flow.dl_dst)
|
||||
|| eth_addr_equals(flow.dl_dst,
|
||||
netdev_get_etheraddr(cli->netdev)))) {
|
||||
|| eth_addr_equals(flow.dl_dst, cli_mac))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -977,7 +980,7 @@ do_send_msg(struct dhclient *cli, const struct dhcp_msg *msg)
|
||||
|
||||
dhcp_assemble(msg, &b);
|
||||
|
||||
memcpy(eh.eth_src, netdev_get_etheraddr(cli->netdev), ETH_ADDR_LEN);
|
||||
netdev_get_etheraddr(cli->netdev, eh.eth_src);
|
||||
memcpy(eh.eth_dst, eth_addr_broadcast, ETH_ADDR_LEN);
|
||||
eh.eth_type = htons(ETH_TYPE_IP);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user