From patchwork Thu Aug 23 12:47:50 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Asias He X-Patchwork-Id: 1366921 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id CBBEADF2AB for ; Thu, 23 Aug 2012 12:48:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754587Ab2HWMsR (ORCPT ); Thu, 23 Aug 2012 08:48:17 -0400 Received: from mail-gg0-f174.google.com ([209.85.161.174]:56573 "EHLO mail-gg0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752031Ab2HWMsP (ORCPT ); Thu, 23 Aug 2012 08:48:15 -0400 Received: by ggdk6 with SMTP id k6so165479ggd.19 for ; Thu, 23 Aug 2012 05:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=zstfw4sRNeD/sWGFXlIP4NrNObY/XEXDHS0MjbVnK3I=; b=oCtuapSRWN8c1hGy4JtmSrUD6ZfMtHQNdDIJ8p14SXcE7L7hSlOQbgi/Q4QkB9S6Xb 8fWGwYKBGizUtJTK9Isn1uqYUqF/b66rYZdJ5K+xUA38fIbjc7PRkY9b7QOC6Wf4CvmZ oyeaGHRSfHOhs8QVhXOJzitiA1mFu3do4mhvuIsznz+JAe0oZh8EelJZwso0Y1FZ1SqV +LqiGFTEms0Nrd986sUsixwYVj278E8qJDU5fNFx84YS5FDhYW9MSNvX/vmZvsqz8FqP pZMNQH8E1+h1ZUrAPFNtwVu++avbFwDUnlpqH0LxSzhA1zKcAuiGjchUHnJr8fq0PfVK 9bKA== Received: by 10.100.236.40 with SMTP id j40mr340558anh.19.1345726094797; Thu, 23 Aug 2012 05:48:14 -0700 (PDT) Received: from hj.localdomain.com ([58.194.229.103]) by mx.google.com with ESMTPS id n5sm6657623ang.18.2012.08.23.05.48.12 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 23 Aug 2012 05:48:14 -0700 (PDT) From: Asias He To: Pekka Enberg Cc: Sasha Levin , Ingo Molnar , Cyrill Gorcunov , kvm@vger.kernel.org Subject: [PATCH V2 1/2] kvm tools: Make tcp between guest/host virtual ip work in UIP mode Date: Thu, 23 Aug 2012 20:47:50 +0800 Message-Id: <1345726071-3517-1-git-send-email-asias.hejun@gmail.com> X-Mailer: git-send-email 1.7.11.4 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org This pach makes tcp between 'guest ip' and 'host virtual ip' work in UIP mode. (The defulat guest ip is 192.168.33.15, host virtual ip is 192.168.33.1) guest$ wget http://192.168.33.1/file guest$ ssh 192.168.33.1 Without this patch, user has to figure out the ip address of host's interface (e.g. eth0) and use that ip address to access host. With this patch, user can simply use the virtual host ip. Signed-off-by: Asias He --- tools/kvm/net/uip/tcp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/kvm/net/uip/tcp.c b/tools/kvm/net/uip/tcp.c index 586a45c..68a1d6e 100644 --- a/tools/kvm/net/uip/tcp.c +++ b/tools/kvm/net/uip/tcp.c @@ -3,6 +3,7 @@ #include #include #include +#include static int uip_tcp_socket_close(struct uip_tcp_socket *sk, int how) { @@ -66,8 +67,11 @@ static struct uip_tcp_socket *uip_tcp_socket_alloc(struct uip_tx_arg *arg, u32 s sk->fd = socket(AF_INET, SOCK_STREAM, 0); sk->addr.sin_family = AF_INET; - sk->addr.sin_addr.s_addr = dip; sk->addr.sin_port = dport; + sk->addr.sin_addr.s_addr = dip; + + if (ntohl(dip) == arg->info->host_ip) + sk->addr.sin_addr.s_addr = inet_addr("127.0.0.1"); ret = connect(sk->fd, (struct sockaddr *)&sk->addr, sizeof(sk->addr)); if (ret) {