[openfirmware] r1668 - ofw/inet

svn at openfirmware.info svn at openfirmware.info
Wed Jan 13 01:38:25 CET 2010


Author: wmb
Date: 2010-01-13 01:38:24 +0100 (Wed, 13 Jan 2010)
New Revision: 1668

Modified:
   ofw/inet/netload.fth
Log:
obp-tftp package - can now specify either multicast sending or reception,
according to whether my-ip-address or server-ip-address is in the multicast
range.  net:239.255.1.2 - send multicast; net:,,239.255.1.2 - receive multicast


Modified: ofw/inet/netload.fth
===================================================================
--- ofw/inet/netload.fth	2010-01-13 00:33:41 UTC (rev 1667)
+++ ofw/inet/netload.fth	2010-01-13 00:38:24 UTC (rev 1668)
@@ -417,15 +417,7 @@
    2drop false
 ;
 
-: setup-multicast  ( -- )
-   server-ip-addr my-ip-addr copy-ip-addr
-   " set-multicast" my-parent ihandle>phandle find-method  if   ( acf )
-      " "(01 00 5e)" his-en-addr swap move                      ( acf )
-      my-ip-addr 1+  his-en-addr 3 +  3 move                    ( acf )
-      his-en-addr 3 + c@ h# 7f and his-en-addr 3 + c!           ( )
-      his-en-addr /e  rot my-parent call-package                ( )
-      exit
-   then
+: try-promiscuous  ( -- )
    " enable-promiscuous" my-parent ihandle>phandle find-method  if   ( acf )
       my-parent call-package
       exit
@@ -442,11 +434,31 @@
    ." Can't enable multicast reception in network driver" cr
 ;
 
+: send-multicast  ( -- )
+   server-ip-addr his-ip-addr copy-ip-addr
+   " "(01 00 5e)" his-en-addr swap move                      ( acf )
+   his-ip-addr 1+  his-en-addr 3 +  3 move                   ( acf )
+   his-en-addr 3 + c@ h# 7f and his-en-addr 3 + c!           ( )
+;
+
+: receive-multicast  ( -- )
+\   server-ip-addr my-ip-addr copy-ip-addr
+   " set-multicast" my-parent ihandle>phandle find-method  if   ( acf )
+      " "(01 00 5e)" his-en-addr swap move                      ( acf )
+      my-ip-addr 1+  his-en-addr 3 +  3 move                    ( acf )
+      his-en-addr 3 + c@ h# 7f and his-en-addr 3 + c!           ( )
+      his-en-addr /e  rot my-parent call-package                ( )
+      exit
+   then
+   try-promiscuous
+;
+
 defer configured  ' noop to configured
 : configure  ( -- )
    use-last?  if  configured exit  then
 
-   server-ip-addr multicast?  if  setup-multicast exit  then
+   my-ip-addr multicast?  if  receive-multicast exit  then
+   server-ip-addr multicast?  if  send-multicast exit  then
 
    use-bootp?  if
       nvram-ip?  0=  if  process-bootp  then




More information about the openfirmware mailing list