- Быть максимально безопасной. Писать код как можно внимательней, проводя
строгие проверки, в особенности, что касается сетевых входных данных, и
использования операций с буферами. Использовать разграничение привелегий,
чтобы уменьшить вред от возможных уязвимостей.
- Надежность чрезвычайно важна, поскольку остановка bgpd обычно приводит к потере
всех маршрутов и, как следствие, недоступность других сетей.
- Предоставить бережную реализацию, подходящую и удовлетворяющую большинство
пользователей. Не пытаться поддерживать все что только можно, но охватить
основную функциональность.
- Обеспечить мощный и простой для понимания язык конфигурации.
- Быть быстрым и эффективно использовать память. Поскольку bgpd оперирует
таблицами, состоящими из сотен тысяч записей, эта часть должна проектироваться
внимательно, принимая во внимание требования по использованию памяти.