1461027783-f12c6f5f-4cbf-47b6-9dda-5867c57cc003

1. A method, comprising:
receiving a network communication request at an offload application, wherein the offload application interfaces with a first network stack implemented in an operating system and a second network stack implemented in a hardware device;
determining if the network communication request can be processed by the second network stack; and
if the network communication request can be processed by the second network stack, then offloading the network communication request for processing to the hardware device, wherein the first and second network stacks comprise an Internet address family and the TCP protocol implemented over an IP network layer, wherein the offload application offloads the network communication request to the second network stack in at least one protocol that is unsupported by the first network stack, and wherein a single stack behavior is maintained by the first and second network stacks to applications and network management utilities, wherein the offload application includes a plurality of offload protocol drivers, wherein a first protocol driver of the plurality of offload protocol drivers is a TCPIP offload protocol driver, and a second protocol driver of the plurality of offload protocol drivers is a socket direct offload protocol driver, wherein the socket direct offload protocol driver allows for remote direct memory access (RDMA) that is not supported by the first network stack, wherein the network communication request is processed faster in the second network stack when compared to the first network stack, and wherein the network communication request is for session setup and connection control, wherein the first network stack in an operating system network stack, wherein the hardware device is a network interface card, the method further comprising:
(i) configuring a host with a list of those offload protocol drivers that need to be loaded on startup, and loading an offload protocol switch, an offload device manager, and the offload protocol drivers along with the operating system network stack at system startup;
(ii) registering the offload protocol switch with a socket driver as handling the Internet address family, wherein any socket based requests for the Internet address family are forwarded to the offload protocol switch by the socket driver, and registering the offload device manager with the operating system network stack for all network events, wherein the offload protocol drivers are registered with the offload protocol switch;
(iii) discovering, by the operating system, the network interface card and loading an appropriate hardware driver configured for the network interface card, and configuring the network interface card to function with no protocol offloading enabled;
(iv) registering the hardware driver with the offload device manager providing hardware dispatch table information, and loading transport offload drivers for the network interface card; and
(v) registering the transport offload drivers with the offload device manager specifying the hardware adapter type supported, wherein the hardware driver dispatch table information is obtained from the offload device manager, wherein the transport offload drivers register each supported IP interfaces with the offload protocol driver, and registering by the offload protocol drivers the supported IP interfaces with the offload protocol switch.
2. The method of claim 1, wherein the offload application and the second network stack are implemented in hardware or software, and further comprising:
if the network communication request cannot be processed by the second network stack, then processing the network communication request at the first network stack.
3. The method of claim 1, wherein the network interface card includes hardware support for at least one IP based protocol in the second network stack, further comprising:
receiving the network communication request at the network interface card; and
processing the network communication request by using the hardware support for the at least one IP based protocol, wherein protocol port space is preserved across protocol processing modules in the hardware device and the operating system.
4. The method of claim 1, wherein the offload application comprises the offload protocol switch, and wherein prior to receiving:
generating the request via a socket application using a socket interface;
receiving the request at a socket driver coupled to the offload application; and
forwarding the request to the offload protocol switch from the socket driver.
5. The method of claim 1, further comprising:
determining if the network communication request is successfully processed by the hardware device; and
if the network communication request is not successfully processed by the hardware device, then sending the network communication request for processing to the first network stack.
6. The method of claim 1, wherein prior to offloading:
sending the network communication request to an IP transport offload driver coupled to a hardware driver for the hardware device; and
forwarding the network communication request from the IP transport offload driver to the hardware driver for offloading to the hardware device.
7. A system, comprising:
a hardware device;
an operating system;
an offload application coupled to the operating system to receive a network communication request;
a first network stack implemented in the operating system, wherein the offload application is configured to interface with the first network stack;
a second network stack implemented in the hardware device, wherein the offload application is configured to interface with the second network stack, wherein the offload application is configured to determine if the network communication request can be processed by the second network stack, and wherein the offload application is configured to offload the network communication request for processing to the hardware device if the network communication request can be processed by the second network stack, wherein the first and second network stacks comprise an Internet address family and the TCP protocol implemented over an IP network layer, wherein the offload application offloads the network communication request to the second network stack in at least one protocol that is unsupported by the first network stack, and wherein a single stack behavior is maintained by the first and second network stacks to applications and network management utilities, wherein the offload application includes a plurality of offload protocol drivers, wherein a first protocol driver of the plurality of offload protocol drivers is a TCPIP offload protocol driver, and a second protocol driver of the plurality of offload protocol drivers is a socket direct offload protocol driver, wherein the socket direct offload protocol driver allows for remote direct memory access (RDMA) that is not supported by the first network stack, wherein the network communication request is processed faster in the second network stack when compared to the first network stack, and wherein the network communication request is for session setup and connection control, wherein the first network stack in an operating system network stack, wherein the hardware device is a network interface card, and wherein operations performed comprise:
(i) configuring the system with a list of those offload protocol drivers that need to be loaded on startup, and loading an offload protocol switch, an offload device manager and the offload protocol drivers along with the operating system network stack at system startup;
(ii) registering the offload protocol switch with a socket driver as handling the Internet address family, wherein any socket based requests for the Internet address family are forwarded to the offload protocol switch by the socket driver, and registering the offload device manager with the operating system network stack for all network events, wherein the offload protocol drivers are registered with the offload protocol switch;
(iii) discovering, by the operating system, the network interface card and loading an appropriate hardware driver configured for the network interface card, and configuring the network interface card to function with no protocol offloading enabled;
(iv) registering the hardware driver with the offload device manager providing hardware dispatch table information, and loading transport offload drivers for the network interface card; and
(v) registering the transport offload drivers with the offload device manager specifying the hardware adapter type supported, wherein the hardware driver dispatch table information is obtained from the offload device manager, wherein the transport offload drivers register each supported IP interfaces with the offload protocol driver, and registering by the offload protocol drivers the supported IP interfaces with the offload protocol switch.
8. The system of claim 7, wherein the offload application and the second network stack are implemented in hardware or software, and wherein the network communication request is processed at the first network stack if the network communication request cannot be processed by the second network stack.
9. The system of claim 7, further comprising:
a hardware support implemented in the network interface card, wherein the hardware support is for at least one IP based protocol in the second network stack, wherein the network communication request is received at the network interface card, and wherein the network communication request is processed via a use of the hardware support for the at least one IP based protocol;
a plurality of processing modules implemented in the hardware device and the operating system, wherein protocol port space is preserved across the protocol processing modules.
10. The system of claim 7, wherein the offload application comprises the offload protocol switch, and further comprising:
a socket application to generate the request via a socket interface; and
a socket driver coupled to the offload application to receive the request and forward the request to the offload protocol switch.
11. The system of claim 7, wherein the offload application is configured to determine if the network communication request is successfully processed by the hardware device, and wherein the offload application is configured to send the network communication request for processing to the first network stack if the network communication request is not successfully processed by the hardware device.
12. The system of claim 7, further comprising:
a hardware driver for the hardware device;
an IP transport offload driver coupled to the hardware driver, wherein the network communication request is sent to the IP transport offload driver, and the network communication request is forwarded from the IP transport offload driver to the hardware driver to offload to the hardware device.
13. A system, comprising:
a processor;
a hardware device;
an operating system capable of execution via the processor;
a video controller to render graphics output via interactions with the operating system;
an offload application coupled to the operating system to receive a network communication request;
a first network stack implemented in the operating system, wherein the offload application is configured to interface with the first network stack; and
a second network stack implemented in the hardware device, wherein the offload application is configured to interface with the second network stack, wherein the offload application is configured to determine if the network communication request can be processed by the second network stack, and wherein the offload application is configured to offload the network communication request for processing to the hardware device if the network communication request can be processed by the second network stack, wherein the first and second network stacks comprise an Internet address family and the TCP protocol implemented over an IP network layer, wherein the offload application offloads the network communication request to the second network stack in at least one protocol that is unsupported by the first network stack, and wherein a single stack behavior is maintained by the first and second network stacks to applications and network management utilities, wherein the offload application includes a plurality of offload protocol drivers, wherein a first protocol driver of the plurality of offload protocol drivers is a TCPIP offload protocol driver, and a second protocol driver of the plurality of offload protocol drivers is a socket direct offload protocol driver, wherein the socket direct offload protocol driver allows for remote direct memory access (RDMA) that is not supported by the first network stack, wherein the network communication request is processed faster in the second network stack when compared to the first network stack, and wherein the network communication request is for session setup and connection control, wherein the first network stack in an operating system network stack, wherein the hardware device is a network interface card, and wherein operations performed comprise:
(i) configuring the system with a list of those offload protocol drivers that need to be loaded on startup, and loading an offload protocol switch, an offload device manager and the offload protocol drivers along with the operating system network stack at system startup;
(ii) registering the offload protocol switch with a socket driver as handling the Internet address family, wherein any socket based requests for the Internet address family are forwarded to the offload protocol switch by the socket driver, and registering the offload device manager with the operating system network stack for all network events, wherein the offload protocol drivers are registered with the offload protocol switch;
(iii) discovering, by the operating system, the network interface card and loading an appropriate hardware driver configured for the network interface card, and configuring the network interface card to function with no protocol offloading enabled;
(iv) registering the hardware driver with the offload device manager providing hardware dispatch table information, and loading transport offload drivers for the network interface card; and
(v) registering the transport offload drivers with the offload device manager specifying the hardware adapter type supported, wherein the hardware driver dispatch table information is obtained from the offload device manager, wherein the transport offload drivers register each supported IP interfaces with the offload protocol driver, and registering by the offload protocol drivers the supported IP interfaces with the offload protocol switch.
14. The system of claim 13, further comprising:
a hardware support implemented in the network interface card, wherein the hardware support is for at least one IP based protocol in the second network stack, wherein the network communication request is received at the network interface card, and wherein the network communication request is processed via a use of the hardware support for the at least one IP based protocol; and
a plurality of processing modules implemented in the hardware device and the operating system, wherein protocol port space is preserved across the protocol processing modules, wherein the offload application is configured to determine if the network communication request is successfully processed by the hardware device, and wherein the offload application is configured to send the network communication request for processing to the first network stack if the network communication request is not successfully processed by the hardware device.
15. A computer readable medium storinci instructions, wherein the instructions are capable of causing operations, the operations comprising:
receiving a network communication request at an offload application, wherein the offload application interfaces with a first network stack implemented in an operating system and a second network stack implemented in a hardware device;
determining if the network communication request can be processed by the second network stack; and
if the network communication request can be processed by the second network stack, then offloading the network communication request for processing to the hardware device, wherein the first and second network stacks comprise an Internet address family and the TOP protocol implemented over an IP network layer, wherein the offload application offloads the network communication request to the second network stack in at least one protocol that is unsupported by the first network stack, and wherein a single stack behavior is maintained by the first and second network stacks to applications and network management utilities, wherein the offload application includes a plurality of offload protocol drivers, wherein a first protocol driver of the plurality of offload protocol drivers is a TCPIP offload protocol driver, and a second protocol driver of the plurality of offload protocol drivers is a socket direct offload protocol driver, wherein the socket direct offload protocol driver allows for remote direct memory access (RDMA) that is not supported by the first network stack, and wherein the network communication request is processed faster in the second network stack when compared to the first network stack, and wherein the network communication request is for session setup and connection control, wherein the first network stack in an operating system network stack, wherein the hardware device is a network interface card, the operations further comprising:
(i) configuring a host with a list of those offload protocol drivers that need to be loaded on startup, and loading an offload protocol switch, an offload device manager and the offload protocol drivers along with the operating system network stack at system startup;
(ii) registering the offload protocol switch with a socket driver as handling the Internet address family, wherein any socket based requests for the Internet address family are forwarded to the offload protocol switch by the socket driver, and registering the offload device manager with the operating system network stack for all network events, wherein the offload protocol drivers are registered with the offload protocol switch;
(iii) discovering, by the operating system, the network interface card and loading an appropriate hardware driver configured for the network interface card, and configuring the network interface card to function with no protocol offloading enabled;
(iv) registering the hardware driver with the offload device manager providing hardware dispatch table information, and loading transport offload drivers for the network interface card; and
(v) registering the transport offload drivers with the offload device manager specifying the hardware adapter type supported, wherein the hardware driver dispatch table information is obtained from the offload device manager, wherein the transport offload drivers register each supported IP interfaces with the offload protocol driver, and registering by the offload protocol drivers the supported IP interfaces with the offload protocol switch.
16. The computer readable medium of claim 15, wherein the offload application and the second network stack are implemented in hardware or software, the operations further comprising:
processing the network communication request at the first network stack if the network communication request cannot be processed by the second network stack.
17. The computer readable medium of claim 15, wherein the network interface card includes hardware support for at least one IP based protocol in the second network stack, the operations further comprising:
receiving the network communication request at the network interface card; and
processing the network communication request by using the hardware support for the at least one IP based protocol, wherein protocol port space is preserved across protocol processing modules in the hardware device and the operating system.
18. The computer readable medium of claim 15, wherein the offload application comprises the offload protocol switch, and wherein prior to receiving:
generating the request via a socket application using a socket interface;
receiving the request at a socket driver coupled to the offload application;
forwarding the request to the offload protocol switch from the socket driver.
19. The computer readable medium of claim 15, the operations further comprising:
determining if the network communication request is successfully processed by the hardware device; and
if the network communication request is not successfully processed by the hardware device, then sending the network communication request for processing to the first network stack.
20. The computer readable medium of claim 15, wherein prior to offloading:
sending the network communication request to an IP transport offload driver coupled to a hardware driver for the hardware device; and
forwarding the network communication request from the IP transport offload driver to the hardware driver for offloading to the hardware device.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for determining a characteristic of a device, the method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference by determining one of optical power (Prad), thermal impedance (ZT), heat transfer coefficient (k), spontaneous emission efficiency (\u03b7spon), stimulated emission efficiency (\u03b7stim), and threshold current (Ith) in accordance with the formula:
IV
=

\u2062
P
cond

+

P
conv

+

P
rad
=

\u2062
(
\u0394
\u2062

\u2003

\u2062
T
Z
T
)

+

(
Ak
\u2061

(
T
surf

–

T
amb
)
+
\u2062

(
\u03b7
spon

\u2061

(

hv
q

)
\u2062

I
th
+
\u03b7
stim

\u2061

(

hv
q

)
\u2062

(

I
–

I
th
)
+

A
\u2062

\u2003

\u2062
\u03c3
\u2062

\u2003

\u2062

T
surf
4
)
wherein IV is the bias power; Pcond is the thermal conduction power, and Pconv is the thermal convection power, \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink, Tamb is the ambient temperature, A is the device area, k is the convection heat-transfer coefficient, \u03c3 is the Stefan-Boltzmann coefficient, h is Planck’s constant, v is the optical frequency, q is the elementary charge, and I is the applied current.
2. A method for determining a characteristic of a device, the method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference by determining one of optical power (Prad), thermal impedance (ZT), heat transfer coefficient (k), spontaneous emission efficiency (\u03b7spon) and threshold current in accordance with the formula:
IV
=
P
cond

+

P
conv

+

P
rad
=
(
\u0394
\u2062

\u2003

\u2062
T
Z
T
)

+

(
Ak
\u2061

(
T
surf

–

T
amb
)
+

(
\u03b7
spon

\u2061

(

hv
q

)
\u2062
I

+

A
\u2062

\u2003

\u2062
\u03c3
\u2062

\u2003

\u2062

T
surf
4
)
wherein IV is the bias power, Pcond is the thermal conduction power, and Pconv is the thermal convection power, \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink, Tamb is the ambient temperature, A is the device area, k is the convection heat-transfer coefficient, \u03c3 is the Stefan-Boltzmann coefficient, h is Planck’s constant, v is the optical frequency, q is the elementary charge, and I is the applied current.
3. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said characteristic is power dissipation (Pdiss) determined in accordance with the formula:
P
diss

\u2248
\u0394
\u2062

\u2003

\u2062
T
Z
T
wherein ZT is the thermal impedance, and \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink.
4. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said device comprises a laser and said characteristic is selected from the group comprising stimulated emission efficiency (\u03b7stim), threshold current (Ith), thermal impedance (ZT), and power dissipation (Pdiss) determined in accordance with the formula:
P
diss

\u2248
\u0394
\u2062

\u2003

\u2062
T
Z
T
\u2248

IV
–
\u03b7
stim

\u2061

(

hv
q

)
\u2062

(

I
–

I
th
)
wherein IV is the bias power, \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink, h is Planck’s constant, v is the optical frequency, q is the elementary charge, and I is the applied current.
5. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said characteristic comprises thermal impedance (ZT), and is determined in accordance with the formula:
Z
T

=
\u2146

(

\u0394
\u2062

\u2003

\u2062
T

)
\u2146

(
IV
)
where \u0394T=Tsurf\u2212Ths is measured between the surface of the device and a nearby point on a heat sink, and IV is the bias power.
6. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said device comprises an optical device and said characteristic comprises radiated power (Prad) determined in accordance with the formula:
P
rad

=

IV
–
\u0394
\u2062

\u2003

\u2062
T
Z
T
wherein IV is the bias power, \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink, and ZT is the thermal impedance.
7. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said device comprises a laser and said characteristic comprises laser efficiency above threshold (\u03b7stim) determined in accordance with the formula:
\u03b7
stim

=
(

q

h
\u2062

\u2003

\u2062
\u03bd
)

\u2062
\u2146

P
rad
\u2146
l
wherein h is Planck’s constant, v is the optical frequency, q is the elementary charge, I is the applied current, and
P
rad

=

IV
–
\u0394
\u2062

\u2003

\u2062
T
Z
T
wherein IV is the bias power, \u0394T=Tsurf\u2212Ths and is measured between the surface of the device and a nearby point on a heat sink, and ZT is the thermal impedance.
8. A method comprising:
obtaining a first temperature measurement (Tsurf) in a first location of the device;
obtaining a second temperature measurement (Ths);
computing the difference (\u0394T) between said first temperature measurement and said second temperature measurement; and
determining a characteristic of said device using at least one of the group including the temperature measurements and the temperature difference, wherein said device comprises a laser and said characteristic is laser efficiency above threshold (\u03b7stim) determined in accordance with the formula:
\u03b7
stim

=
(

q

h\u03bd
\u2062

\u2003

\u2062

Z
T
)

\u2061
(
\u2146

(

\u0394
\u2062

\u2003

\u2062
T

)
\u2146
I
)
I
=

Ith
–
–
(
\u2146

(

\u0394
\u2062

\u2003

\u2062
T

)
\u2146
I
)
I
=

Ith
+
wherein h is Planck’s constant, v is the optical frequency, ZT is the thermal impedance, q is the elementary charge, I is the applied current, \u0394T=Tsurf\u2212Ths, and Ith is the threshold current.