profile
viewpoint
Sam Balana puradox @Google California, United States sambalana.com Software Engineer at Google, connecting Fuchsia to the world 🌎

ArdentLabs/sort-obj-array 2

A sorting algorithm intuitively controlled by an object that respects order and direction

puradox/apples 2

An OpenGL game that utilizes Divvy (see https://github.com/puradox/divvy)

puradox/blanck 2

Bluetooth on the Planck keyboard

djimene3/tlds-parser 1

Parser for Microsoft Computer Vision APi.

ericlovesmath/ChatterBot-iOS 1

For people who are depressed (jk)

puradox/CS-145 1

Project class in software for embedded systems

puradox/CS-165 1

Project class in algorithms & data structures

puradox/divvy 1

A lightweight, single-header, component entity framework in C++

puradox/itp-calc 1

Infix to Postfix Calculator

issue openedgoogle/gvisor

API to remove an ARP/NDP entry by address

An API needs to be exposed on tcpip.stack.Stack to remove an IP address to MAC address association on a given NIC, given the IP address. This will be used for network testing and manual debugging. Partially unblocks running the ARP and NDP IxANVL test suites.

created time in 2 days

issue openedgoogle/gvisor

API to clear all ARP/NDP entries

An API needs to be exposed on tcpip.stack.Stack to clear all IP address to MAC address associations on a given NIC. This will be used for network testing and manual debugging. Partially unblocks running the ARP and NDP IxANVL test suites.

created time in 2 days

issue openedgoogle/gvisor

API to list all ARP/NDP entries

An API needs to be exposed on tcpip.stack.Stack to list all IP address to MAC address associations on a given NIC. This will be used for network testing and manual debugging. Partially unblocks running the ARP and NDP IxANVL test suites.

created time in 2 days

issue openedgoogle/gvisor

API to add a static ARP/NDP entry

An API needs to be exposed on tcpip.stack.Stack to add an IP address to MAC address association that does not expire. This will be used for network testing and manual debugging. Partially unblocks running the ARP and NDP IxANVL test suites.

The current tcpip.stack.Stack.AddLinkAddress method does not give any control over the lifetime of the ARP/NDP entry.

created time in 2 days

issue openedgoogle/gvisor

Implement Neighbor Unreachabilty Detection state machine

The Neighbor Unreachabililty Detection (NUD) is a mechanism defined in RFC 4861 Section 7. It defines how nodes determine a neighbor as no longer reachable.

Note that this mechanism is defined for NDP, but the same state machine can be used for ARP using the respective ARP packets in place of neighbor solicitations and advertisements. An example of this can be found in Linux's implementation of ARP.

This adds a few benefits over the current implementation of ARP:

Significantly improves the robustness of packet delivery in the presence of failing routers, partially failing or partitioned links, or nodes that change their link-layer addresses. For instance, mobile nodes can move off-link without losing any connectivity due to stale ARP caches.

Unlike ARP, Neighbor Discovery detects half-link failures (using Neighbor Unreachability Detection) and avoids sending traffic to neighbors with which two-way connectivity is absent.

Source: RFC 4861 Section 3.1

created time in 8 days

issue openedgoogle/gvisor

API to receive notifications about NUD state changes

The Neighbor Unreachabililty Detection (NUD) state machine inherently stores reachability information which is useful for debugging and collecting metrics. This information is exposed through the use of events via an event dispatcher. An event is dispatched when an entry in the state machine changes state.

See https://tools.ietf.org/html/rfc4861#page-89 for the list of edges.

An API needs to be exposed on tcpip.stack.Stack to receive notifications when entries change state within the NUD state machine. This will allow clients to subscribe to reachability information for devices on their local network.

created time in 8 days

issue openedgoogle/gvisor

API to configure NUD state machine

The Neighbor Unreachabililty Detection (NUD) state machine has several protocol constants defined in RFC 4861 section 10 which may be overridden for different link layers. This allows Neighbor Discovery to operate over links with widely varying performance characteristics.

See https://tools.ietf.org/html/rfc4861#section-10 for the list of constants.

An API needs to be exposed on tcpip.stack.Stack to configure these constants on a per-NIC basis, which is necessary for the implementation of the NUD state machine.

created time in 8 days

issue commentpuradox/sift-sort

Docs: show example of passing a custom sort function

Ah, I didn't notice there weren't any documentation about custom sorting functions. Thanks for catching that! It works almost identical to how Array.prototype.sort() works, with the only difference being the compare function is the second parameter.

sort(input: T[], compareFunc: (a: T, b: T) -> number) -> T[]

An example could be taken from the sift-sort.spec.ts. But here's something useful off the top of my head: sorting strings without respect to case.

const accounts = [
  { name: "Sam" },
  { name: "Ryan" },
  { name: "sally" },
];

sort(
  accounts, 
  (a, b) => a.name.toLowerCase().localCompare(b.name.toLowerCase()),
);
DesignByOnyx

comment created time in 16 days

startedgoogle/gvisor

started time in 23 days

startedpixos/poptrie

started time in 2 months

push eventpuradox/qmk_firmware

Sam Balana

commit sha c5c0d4694f40e74090749591818f4908b3647297

Switch around the thumb keys

view details

push time in 5 months

push eventpuradox/qmk_firmware

Sam Balana

commit sha b01fec60c0000d5686b34b3d470b8bf1d2cff785

Mirror preonic keymap on lets_split

view details

Sam Balana

commit sha 05dbac6c68cedd8821f0d9e6139fcd247955a982

Update atreus keybindings

view details

push time in 5 months

push eventpuradox/qmk_firmware

Sam Balana

commit sha c97000cd4c5d68a7e58211ed798ab7d140d3034c

Add atreus keymap

view details

push time in 5 months

more