1. 26 Feb, 2016 1 commit
    • Josef Bacik's avatar
      net: fix ipv6 routing · eb9f401f
      Josef Bacik authored
      ipv6 routing in grub2 is broken, we cannot talk to anything outside our local
      network or anything that doesn't route in our global namespace.  This patch
      fixes this by doing a couple of things
      
      1) Read the router information off of the router advertisement.  If we have a
      router lifetime we need to take the source address and create a route from it.
      
      2) Changes the routing stuff slightly to allow you to specify a gateway _and_ an
      interface.  Since the router advertisements come in on the link local address we
      need to associate it with the global address on the card.  So when we are
      processing the router advertisement, either use the SLAAC interface we create
      and add the route to that interface, or loop through the global addresses we
      currently have on our interface and associate it with one of those addresses.
      We need to have a special case here for the default route so that it gets used,
      we do this by setting the masksize to 0 to mean it encompasses all networks.
      The routing code will automatically select the best route so if there is a
      closer match we will use that.
      
      With this patch I can now talk to ipv6 addresses outside of my local network.
      Thanks,
      Signed-off-by: 's avatarJosef Bacik <jbacik@fb.com>
      eb9f401f
  2. 27 Mar, 2015 1 commit
  3. 28 Nov, 2014 1 commit
    • Michael Chang's avatar
      send router solicitation for ipv6 address autoconf v2 · 7c4b6b7b
      Michael Chang authored
      Many routers have long router advertisment interval configured by
      default. The Neighbor Discovery protocol (RFC4861) has defined default
      MaxRtrAdvInterval value as 600 seconds and
      MinRtrAdvInterval as 0.33*MaxRtrAdvInterval. This makes
      net_ipv6_autoconf fails more often than not as currently it passively
      listens the RA message to perfom address autoconfiguration.
      
      This patch tries to send router solicitation to overcome the problem of
      long RA interval.
      
      v2:
      use cpu_to_be macro for network byte order conversion
      add missing error handling
      7c4b6b7b
  4. 03 Nov, 2014 1 commit
    • Michael Chang's avatar
      icmp6 fix no respond to neighbor solicit message · 72ec399a
      Michael Chang authored
      The structure size used in grub_netbuff_pull to get the pointer to
      option header is apparently wrong, which leads to subsequent range check
      failed and therefore not responding to any neighbor solicit message in my
      testing.
      72ec399a
  5. 21 Jan, 2014 1 commit
    • Paulo Flabiano Smorigo's avatar
      increase network try interval gradually · 6f65e36c
      Paulo Flabiano Smorigo authored
      * grub-core/net/arp.c (grub_net_arp_send_request): Increase network try
      interval gradually.
      * grub-core/net/icmp6.c (grub_net_icmp6_send_request): Likewise.
      * grub-core/net/net.c (grub_net_fs_read_real): Likewise.
      * grub-core/net/tftp.c (tftp_open): Likewise.
      * include/grub/net.h (GRUB_NET_INTERVAL_ADDITION): New define.
      6f65e36c
  6. 15 Dec, 2013 1 commit
  7. 20 Oct, 2013 1 commit
  8. 05 Oct, 2012 1 commit
  9. 09 Jun, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Stop polling as soon as we have the packet we were waiting for. · 96f7e60e
      Vladimir 'phcoder' Serbinenko authored
      	* include/grub/net.h (grub_net_poll_cards): New argument stop_condition.
      	All users updated.
      	* grub-core/net/arp.c (have_pending): New var.
      	(pending_req): Likewise.
      	(grub_net_arp_send_request): Fill pending_req and use have_pending as
      	stop indicator.
      	(grub_net_arp_receive): Set have_pending.
      	* grub-core/net/dns.c (recv_data): New field stop.
      	(recv_hook): Set stop.
      	(grub_net_dns_lookup): Init stop and use as stop condition.
      	* grub-core/net/http.c (http_establish): Use headers_recv as stop
      	condition.
      	* grub-core/net/net.c (grub_net_poll_cards): New argument
      	stop_condition. Stop when it goes true.
      	* grub-core/net/tcp.c (grub_net_tcp_open): Use `established' as stop
      	indicator.
      	* grub-core/net/tftp.c (tftp_open): Use `have_oack' as stop indicator.
      96f7e60e
  10. 14 Oct, 2011 1 commit
  11. 13 Oct, 2011 2 commits
  12. 12 Oct, 2011 1 commit