+ return 0;
+}
+
+static void
+lo_tx_compl(struct ifnet *ifp, struct mbuf *m)
+{
+ errno_t error;
+
+ if ((ifp->if_xflags & IFXF_TIMESTAMP_ENABLED) != 0) {
+ boolean_t requested;
+
+ error = mbuf_get_timestamp_requested(m, &requested);
+ if (requested) {
+ struct timespec now;
+ u_int64_t ts;
+
+ nanouptime(&now);
+ net_timernsec(&now, &ts);
+
+ error = mbuf_set_timestamp(m, ts, TRUE);
+ if (error != 0) {
+ printf("%s: mbuf_set_timestamp() failed %d\n",
+ __func__, error);
+ }
+ }
+ }
+ error = mbuf_set_status(m, KERN_SUCCESS);
+ if (error != 0) {
+ printf("%s: mbuf_set_status() failed %d\n",
+ __func__, error);
+ }
+
+ ifnet_tx_compl(ifp, m);