Comment 3 for bug 1831404

Revision history for this message
Yang Li (yang-li) wrote :

It was designed by qemu, when the vm is live-migrate completed, the vm will send 5 rarp packets:
  88 static int announce_self_create(uint8_t *buf,
  89 uint8_t *mac_addr)
  90 {
  91 /* Ethernet header. */
  92 memset(buf, 0xff, 6); /* destination MAC addr */
  93 memcpy(buf + 6, mac_addr, 6); /* source MAC addr */
  94 *(uint16_t *)(buf + 12) = htons(ETH_P_RARP); /* ethertype */
  95
  96 /* RARP header. */
  97 *(uint16_t *)(buf + 14) = htons(ARP_HTYPE_ETH); /* hardware addr space */
  98 *(uint16_t *)(buf + 16) = htons(ARP_PTYPE_IP); /* protocol addr space */
  99 *(buf + 18) = 6; /* hardware addr length (ethernet) */
 100 *(buf + 19) = 4; /* protocol addr length (IPv4) */
 101 *(uint16_t *)(buf + 20) = htons(ARP_OP_REQUEST_REV); /* opcode */
 102 memcpy(buf + 22, mac_addr, 6); /* source hw addr */
 103 memset(buf + 28, 0x00, 4); /* source protocol addr */
 104 memcpy(buf + 32, mac_addr, 6); /* target hw addr */
 105 memset(buf + 38, 0x00, 4); /* target protocol addr */
 106
 107 /* Padding to get up to 60 bytes (ethernet min packet size, minus FCS). */
 108 memset(buf + 42, 0x00, 18);
 109
 110 return 60; /* len (FCS will be added by hardware) */
 111 }

Use some big flavor with high memory, it can be reproduced easily.