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.
It was designed by qemu, when the vm is live-migrate completed, the vm will send 5 rarp packets: self_create( uint8_t *buf, HTYPE_ETH) ; /* hardware addr space */ PTYPE_IP) ; /* protocol addr space */ OP_REQUEST_ REV); /* opcode */
88 static int announce_
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_
98 *(uint16_t *)(buf + 16) = htons(ARP_
99 *(buf + 18) = 6; /* hardware addr length (ethernet) */
100 *(buf + 19) = 4; /* protocol addr length (IPv4) */
101 *(uint16_t *)(buf + 20) = htons(ARP_
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.